* src/GrampsDb/_ReadXML.py (start_attribute): Support attributes
in event and eventref; (stop_cause): Create attribute on cause tag. * src/Editors/_EditEventRef.py (_create_tabbed_pages): Typos. * src/Editors/_EditEvent.py (_create_tabbed_pages): Typo. * data/grampsxml.rng: Document XML changes (xml 1.1.2). * data/grampsxml.dtd: Document XML changes (xml 1.1.2). * src/GrampsDb/_WriteXML.py (dump_event_ref): Write attributes; (write_event): write attributes, remove cause. svn: r7182
This commit is contained in:
		| @@ -1,4 +1,13 @@ | ||||
| 2006-08-15  Alex Roitman  <shura@gramps-project.org> | ||||
| 	* src/GrampsDb/_ReadXML.py (start_attribute): Support attributes | ||||
| 	in event and eventref; | ||||
| 	(stop_cause): Create attribute on cause tag. | ||||
| 	* src/Editors/_EditEventRef.py (_create_tabbed_pages): Typos. | ||||
| 	* src/Editors/_EditEvent.py (_create_tabbed_pages): Typo. | ||||
| 	* data/grampsxml.rng: Document XML changes (xml 1.1.2). | ||||
| 	* data/grampsxml.dtd: Document XML changes (xml 1.1.2). | ||||
| 	* src/GrampsDb/_WriteXML.py (dump_event_ref): Write attributes; | ||||
| 	(write_event): write attributes, remove cause. | ||||
| 	* src/GrampsDb/_GrampsBSDDB.py: Cleanup on upgrades. | ||||
|  | ||||
| 2006-08-14  Alex Roitman  <shura@gramps-project.org> | ||||
|   | ||||
| @@ -24,15 +24,15 @@ | ||||
| --> | ||||
|  | ||||
| <!-- | ||||
|     This is the Document Type Definition file for v1.1.1  | ||||
|     This is the Document Type Definition file for v1.1.2 | ||||
|     of the GRAMPS XML genealogy data format. | ||||
|     Please use the following formal public identifier to identify it: | ||||
|  | ||||
|     "-//GRAMPS//DTD GRAMPS XML V1.1.1//EN" | ||||
|     "-//GRAMPS//DTD GRAMPS XML V1.1.2//EN" | ||||
|  | ||||
|     For example: | ||||
|         <!DOCTYPE database PUBLIC "-//GRAMPS//DTD GRAMPS XML V1.1.1//EN" | ||||
|                 "http://gramps-project.org/xml/1.1.1/grampsxml.dtd" | ||||
|         <!DOCTYPE database PUBLIC "-//GRAMPS//DTD GRAMPS XML V1.1.2//EN" | ||||
|                 "http://gramps-project.org/xml/1.1.2/grampsxml.dtd" | ||||
|                 [...]> | ||||
| --> | ||||
|  | ||||
| @@ -53,7 +53,7 @@ DATABASE | ||||
|  | ||||
| <!ELEMENT database (header, name-formats?, events?, people?, families?, | ||||
|                     sources?, places?, objects?, repositories?, bookmark?)> | ||||
| <!ATTLIST database xmlns CDATA #FIXED "http://gramps-project.org/xml/1.1.1/"> | ||||
| <!ATTLIST database xmlns CDATA #FIXED "http://gramps-project.org/xml/1.1.2/"> | ||||
|  | ||||
| <!--	************************************************************ | ||||
| HEADER | ||||
| @@ -198,7 +198,7 @@ EVENT | ||||
| <!ELEMENT events (event)*> | ||||
|  | ||||
| <!ELEMENT event (type?,(daterange|dateval|datestr)?,place?,cause?, | ||||
|                  description?,note?,sourceref*,objref*)> | ||||
|                  description?,attribute*,note?,sourceref*,objref*)> | ||||
| <!ATTLIST event  | ||||
|         id        CDATA #REQUIRED | ||||
|         handle    ID    #REQUIRED | ||||
| @@ -356,7 +356,7 @@ SHARED ELEMENTS | ||||
|         conf  CDATA #IMPLIED | ||||
| > | ||||
|  | ||||
| <!ELEMENT eventref (note?)> | ||||
| <!ELEMENT eventref (attribute*,note?)> | ||||
| <!ATTLIST eventref | ||||
|         hlink IDREF #REQUIRED | ||||
|         priv  (0|1) #IMPLIED | ||||
|   | ||||
| @@ -31,7 +31,7 @@ | ||||
|  | ||||
| <grammar | ||||
|   datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"   | ||||
|   ns="http://gramps-project.org/xml/1.1.1/" | ||||
|   ns="http://gramps-project.org/xml/1.1.2/" | ||||
|   xmlns="http://relaxng.org/ns/structure/1.0"> | ||||
|  | ||||
|   <start><element name="database"> | ||||
| @@ -325,8 +325,10 @@ | ||||
|     <optional><element name="place"> | ||||
|         <attribute name="hlink"><data type="IDREF"/></attribute> | ||||
|     </element></optional> | ||||
|     <optional><element name="cause"><text/></element></optional> | ||||
|     <optional><element name="description"><text/></element></optional> | ||||
|     <zeroOrMore><element name="attribute"> | ||||
|         <ref name="attribute-content"/> | ||||
|     </element></zeroOrMore> | ||||
|     <optional><element name="note"> | ||||
|         <ref name="note-content"/> | ||||
|     </element></optional> | ||||
| @@ -470,6 +472,9 @@ | ||||
|         <ref name="priv-content"/> | ||||
|     </attribute></optional> | ||||
|     <optional><attribute name="role"><text/></attribute></optional> | ||||
|     <zeroOrMore><element name="attribute"> | ||||
|         <ref name="attribute-content"/> | ||||
|     </element></zeroOrMore> | ||||
|     <optional><element name="note"> | ||||
|         <ref name="note-content"/> | ||||
|     </element></optional> | ||||
|   | ||||
| @@ -173,7 +173,7 @@ class EditEvent(EditPrimary): | ||||
|             self.attr_ref_list = self._add_tab( | ||||
|                 notebook, | ||||
|                 AttrEmbedList(self.dbstate, self.uistate, self.track, | ||||
|                               self.source_ref.get_attribute_list())) | ||||
|                               self.obj.get_attribute_list())) | ||||
|         except AttributeError: | ||||
|             print "Attribute list not available yet" | ||||
|          | ||||
|   | ||||
| @@ -158,7 +158,7 @@ class EditEventRef(EditReference): | ||||
|  | ||||
|         try: | ||||
|             self.attr_list = self._add_tab( | ||||
|                 notebook_ref, | ||||
|                 notebook, | ||||
|                 AttrEmbedList(self.dbstate, self.uistate, self.track, | ||||
|                               self.source.get_attribute_list())) | ||||
|         except AttributeError: | ||||
| @@ -187,7 +187,7 @@ class EditEventRef(EditReference): | ||||
|  | ||||
|         try: | ||||
|             self.attr_ref_list = self._add_tab( | ||||
|                 notebook, | ||||
|                 notebook_ref, | ||||
|                 AttrEmbedList(self.dbstate, self.uistate, self.track, | ||||
|                               self.source_ref.get_attribute_list())) | ||||
|         except AttributeError: | ||||
|   | ||||
| @@ -804,6 +804,10 @@ class GrampsParser(UpdateCallback): | ||||
|             self.object.add_attribute(self.attribute) | ||||
|         elif self.objref: | ||||
|             self.objref.add_attribute(self.attribute) | ||||
|         elif self.event: | ||||
|             self.event.add_attribute(self.attribute) | ||||
|         elif self.eventref: | ||||
|             self.eventref.add_attribute(self.attribute) | ||||
|         elif self.person: | ||||
|             self.person.add_attribute(self.attribute) | ||||
|         elif self.family: | ||||
| @@ -1604,7 +1608,11 @@ class GrampsParser(UpdateCallback): | ||||
|         self.event.description = tag | ||||
|  | ||||
|     def stop_cause(self,tag): | ||||
|         self.event.cause = tag | ||||
|         # The old event's cause is now an attribute | ||||
|         attr = RelLib.Attribute() | ||||
|         attr.set_type(RelLib.AttributeType.CAUSE) | ||||
|         attr.set_value(tag) | ||||
|         self.event.add_attribute(attr) | ||||
|  | ||||
|     def stop_gender(self,tag): | ||||
|         t = tag | ||||
|   | ||||
| @@ -566,12 +566,14 @@ class XmlWriter(UpdateCallback): | ||||
|         else: | ||||
|             role_text = '' | ||||
|  | ||||
|         if eventref.get_note() == "": | ||||
|         attribute_list = eventref.get_attribute_list() | ||||
|         if (attribute_list == []) and (eventref.get_note() == ""): | ||||
|             self.write_ref('eventref',eventref.ref,index, | ||||
|                            close=True,extra_text=priv_text+role_text) | ||||
|         else: | ||||
|             self.write_ref('eventref',eventref.ref,index, | ||||
|                            close=False,extra_text=priv_text+role_text) | ||||
|             self.write_attribute_list(attribute_list,index+1) | ||||
|             self.write_note("note",eventref.get_note_object(),index+1) | ||||
|             self.g.write('%s</eventref>\n' % sp) | ||||
|  | ||||
| @@ -586,8 +588,8 @@ class XmlWriter(UpdateCallback): | ||||
|         self.g.write('  %s<type>%s</type>\n' % (sp,self.fix(etype)) ) | ||||
|         self.write_date(event.get_date_object(),index+1) | ||||
|         self.write_ref("place",event.get_place_handle(),index+1) | ||||
|         self.write_line("cause",event.get_cause(),index+1) | ||||
|         self.write_line("description",event.get_description(),index+1) | ||||
|         self.write_attribute_list(event.get_attribute_list(),index+1) | ||||
|         if event.get_note(): | ||||
|             self.write_note("note",event.get_note_object(),index+1) | ||||
|              | ||||
|   | ||||
		Reference in New Issue
	
	Block a user