388 lines
15 KiB
XML
388 lines
15 KiB
XML
|
<!--
|
||
|
This is a first attempt to give a W3C's XML schema for Gramp's database files.
|
||
|
-->
|
||
|
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||
|
targetNamespace="http://gramps.sourceforge.net/database"
|
||
|
xmlns:g="http://gramps.sourceforge.net/database"
|
||
|
elementFormDefault="qualified">
|
||
|
<xsd:element name="database" type="g:Database" />
|
||
|
<xsd:complexType name="Address">
|
||
|
<xsd:sequence>
|
||
|
<xsd:group ref="g:Date" minOccurs="0" />
|
||
|
<xsd:element name="street" minOccurs='0' type="xsd:string" />
|
||
|
<xsd:element name="city" minOccurs='0' type="xsd:string" />
|
||
|
<xsd:element name="state" minOccurs='0' type="xsd:string" />
|
||
|
<xsd:element name="country" minOccurs='0'
|
||
|
type="xsd:string" />
|
||
|
<xsd:element name="postal" minOccurs='0' type="xsd:string" />
|
||
|
<xsd:element name="note" type="g:Note" minOccurs='0' />
|
||
|
<xsd:element name="sourceref" type="g:SourceReference"
|
||
|
minOccurs='0' />
|
||
|
</xsd:sequence>
|
||
|
<xsd:attributeGroup ref="g:Property" />
|
||
|
</xsd:complexType>
|
||
|
<xsd:complexType name="Attribute">
|
||
|
<xsd:all>
|
||
|
<xsd:element name="note" type="g:Note" minOccurs="0" />
|
||
|
<xsd:element name="sourceref" type="g:SourceReference"
|
||
|
minOccurs="0" />
|
||
|
</xsd:all>
|
||
|
<xsd:attribute name="type" type="xsd:string" use="optional" />
|
||
|
<xsd:attribute name="value" type="xsd:string" use="optional" />
|
||
|
<xsd:attributeGroup ref="g:Property" />
|
||
|
</xsd:complexType>
|
||
|
<xsd:complexType name="Bookmarks">
|
||
|
<xsd:sequence>
|
||
|
<xsd:element name="bookmark" type="g:RefType" minOccurs="0"
|
||
|
maxOccurs="unbounded" />
|
||
|
</xsd:sequence>
|
||
|
</xsd:complexType>
|
||
|
<xsd:complexType name="ChildOf">
|
||
|
<xsd:sequence />
|
||
|
<xsd:attribute name="ref" type="g:ID" />
|
||
|
<xsd:attribute name="mrel" type="g:RelationType"
|
||
|
use="optional" />
|
||
|
<xsd:attribute name="frel" type="g:RelationType"
|
||
|
use="optional" />
|
||
|
</xsd:complexType>
|
||
|
<xsd:complexType name="Coordinate">
|
||
|
<xsd:sequence />
|
||
|
<xsd:attribute name="long" type="xsd:decimal" />
|
||
|
<xsd:attribute name="lat" type="xsd:decimal" />
|
||
|
</xsd:complexType>
|
||
|
<xsd:complexType name="Created">
|
||
|
<xsd:sequence />
|
||
|
<xsd:attribute name="date" type="xsd:string" />
|
||
|
<xsd:attribute name="version" type="xsd:string" />
|
||
|
<xsd:attribute name="people" type="xsd:nonNegativeInteger" />
|
||
|
<xsd:attribute name="families" type="xsd:nonNegativeInteger" />
|
||
|
<xsd:attribute name="sources" type="xsd:nonNegativeInteger" />
|
||
|
<xsd:attribute name="places" type="xsd:nonNegativeInteger" />
|
||
|
</xsd:complexType>
|
||
|
<xsd:complexType name="Database">
|
||
|
<xsd:all>
|
||
|
<xsd:element name="header" type="g:Header" minOccurs="1"
|
||
|
maxOccurs="1" />
|
||
|
<xsd:element name="people" type="g:People" minOccurs="0"
|
||
|
maxOccurs="1" />
|
||
|
<xsd:element name="families" type="g:Families" minOccurs="0"
|
||
|
maxOccurs="1" />
|
||
|
<xsd:element name="sources" type="g:Sources" minOccurs="0"
|
||
|
maxOccurs="1" />
|
||
|
<xsd:element name="places" type="g:Places" minOccurs="0"
|
||
|
maxOccurs="1" />
|
||
|
<xsd:element name="objects" type="g:Objects" minOccurs="0"
|
||
|
maxOccurs="1" />
|
||
|
<xsd:element name="bookmarks" type="g:Bookmarks"
|
||
|
minOccurs="0" maxOccurs="1" />
|
||
|
</xsd:all>
|
||
|
</xsd:complexType>
|
||
|
<xsd:complexType name="DateValue">
|
||
|
<xsd:sequence />
|
||
|
<xsd:attribute name="val" type="g:DateValueType" />
|
||
|
<xsd:attribute name="type" type="g:DateType" use="optional" />
|
||
|
</xsd:complexType>
|
||
|
<xsd:complexType name="DateRange">
|
||
|
<xsd:sequence />
|
||
|
<xsd:attribute name="start" type="g:DateValueType" />
|
||
|
<xsd:attribute name="stop" type="g:DateValueType" />
|
||
|
</xsd:complexType>
|
||
|
<xsd:complexType name="DateString">
|
||
|
<xsd:sequence />
|
||
|
</xsd:complexType>
|
||
|
<xsd:complexType name="Event">
|
||
|
<xsd:sequence>
|
||
|
<xsd:group ref="g:Date" minOccurs="0" />
|
||
|
<xsd:element name="place" type="g:RefType" minOccurs="0" />
|
||
|
<xsd:element name="description" minOccurs="0"
|
||
|
type="xsd:string" />
|
||
|
<xsd:element name="cause" minOccurs="0" type="xsd:string" />
|
||
|
<xsd:element name="note" type="g:Note" minOccurs="0" />
|
||
|
<xsd:element name="sourceref" type="g:SourceReference"
|
||
|
minOccurs="0" maxOccurs="unbounded" />
|
||
|
</xsd:sequence>
|
||
|
<xsd:attribute name="type" type="g:EventType" />
|
||
|
</xsd:complexType>
|
||
|
<xsd:complexType name="Families">
|
||
|
<xsd:sequence>
|
||
|
<xsd:element name="family" type="g:Family" minOccurs="0"
|
||
|
maxOccurs="unbounded" />
|
||
|
</xsd:sequence>
|
||
|
</xsd:complexType>
|
||
|
<xsd:complexType name="Family">
|
||
|
<xsd:sequence>
|
||
|
<xsd:element name="father" minOccurs="0" type="g:RefType" />
|
||
|
<xsd:element name="mother" minOccurs="0" type="g:RefType" />
|
||
|
<xsd:element name="event" type="g:Event" minOccurs="0"
|
||
|
maxOccurs="unbounded" />
|
||
|
<xsd:element name="objref" type="g:ID" minOccurs="0"
|
||
|
maxOccurs="unbounded" />
|
||
|
<xsd:element name="child" minOccurs="0" maxOccurs="unbounded"
|
||
|
type="g:RefType" />
|
||
|
<xsd:element name="attribute" type="g:Attribute"
|
||
|
minOccurs="0" maxOccurs="unbounded" />
|
||
|
<xsd:element name="note" type="g:Note" minOccurs="0" />
|
||
|
</xsd:sequence>
|
||
|
<xsd:attribute name="id" type="g:ID" />
|
||
|
<xsd:attribute name="type" type="g:MarriageType"
|
||
|
use="optional" />
|
||
|
</xsd:complexType>
|
||
|
<xsd:complexType name="Header">
|
||
|
<xsd:all>
|
||
|
<xsd:element name="created" type="g:Created" minOccurs="1"
|
||
|
maxOccurs="1" />
|
||
|
<xsd:element name="researcher" type="g:Researcher"
|
||
|
minOccurs="0" maxOccurs="1" />
|
||
|
</xsd:all>
|
||
|
</xsd:complexType>
|
||
|
<xsd:complexType name="Location">
|
||
|
<xsd:sequence />
|
||
|
<xsd:attribute name="city" type="xsd:string" use="optional" />
|
||
|
<xsd:attribute name="county" type="xsd:string"
|
||
|
use="optional" />
|
||
|
<xsd:attribute name="state" type="xsd:string" use="optional" />
|
||
|
<xsd:attribute name="country" type="xsd:string"
|
||
|
use="optional" />
|
||
|
<xsd:attribute name="parish" type="xsd:string"
|
||
|
use="optional" />
|
||
|
</xsd:complexType>
|
||
|
<xsd:complexType name="Name">
|
||
|
<xsd:all>
|
||
|
<xsd:element name="first" minOccurs='0' type="xsd:string" />
|
||
|
<xsd:element name="last" minOccurs='0' type="xsd:string" />
|
||
|
<xsd:element name="suffix" minOccurs='0' type="xsd:string" />
|
||
|
<xsd:element name="title" minOccurs='0' type="xsd:string" />
|
||
|
<xsd:element name="note" minOccurs='0' type="xsd:string" />
|
||
|
<xsd:element name="sourceref" type="g:SourceReference"
|
||
|
minOccurs="0" />
|
||
|
</xsd:all>
|
||
|
<xsd:attribute name="type" type="g:NameType" />
|
||
|
<xsd:attributeGroup ref="g:Property" />
|
||
|
</xsd:complexType>
|
||
|
<xsd:complexType name="Objects">
|
||
|
<xsd:sequence>
|
||
|
<xsd:element name="object" type="g:Object" minOccurs="0"
|
||
|
maxOccurs="unbounded" />
|
||
|
</xsd:sequence>
|
||
|
</xsd:complexType>
|
||
|
<xsd:complexType name="Object">
|
||
|
<xsd:sequence>
|
||
|
<xsd:element name="attribute" type="g:Attribute"
|
||
|
minOccurs="0" maxOccurs="unbounded" />
|
||
|
</xsd:sequence>
|
||
|
<xsd:attribute name="id" type="g:ID" />
|
||
|
<xsd:attribute name="src" type="xsd:string" use="optional" />
|
||
|
<xsd:attribute name="mime" type="xsd:string" use="optional" />
|
||
|
<xsd:attribute name="description" type="xsd:string"
|
||
|
use="optional" />
|
||
|
</xsd:complexType>
|
||
|
<xsd:complexType name="People">
|
||
|
<xsd:sequence>
|
||
|
<xsd:element name="person" type="g:Person" minOccurs="0"
|
||
|
maxOccurs="unbounded" />
|
||
|
</xsd:sequence>
|
||
|
<xsd:attribute name="default" type="g:ID" use="optional" />
|
||
|
</xsd:complexType>
|
||
|
<xsd:complexType name="Person">
|
||
|
<xsd:sequence>
|
||
|
<xsd:element name="gender" type="g:Gender" minOccurs="1"
|
||
|
maxOccurs="1" />
|
||
|
<xsd:element name="name" type="g:Name" minOccurs='0' />
|
||
|
<xsd:element name="aka" type="g:Name" minOccurs='0'
|
||
|
maxOccurs='unbounded' />
|
||
|
<xsd:element name="nick" type="xsd:string" minOccurs="0" />
|
||
|
<xsd:element name="uid" type="xsd:string" minOccurs="0" />
|
||
|
<xsd:element name="event" type="g:Event" minOccurs='0'
|
||
|
maxOccurs='unbounded' />
|
||
|
<xsd:element name="objref" type="g:RefType" minOccurs='0'
|
||
|
maxOccurs='unbounded' />
|
||
|
<xsd:element name="url" type="g:Url" minOccurs='0'
|
||
|
maxOccurs='unbounded' />
|
||
|
<xsd:element name="address" type="g:Address" minOccurs='0'
|
||
|
maxOccurs='unbounded' />
|
||
|
<xsd:element name="childof" type="g:ChildOf" minOccurs='0'
|
||
|
maxOccurs='unbounded' />
|
||
|
<xsd:element name="parentin" minOccurs='0'
|
||
|
maxOccurs='unbounded' type="g:RefType" />
|
||
|
<xsd:element name="sourceref" type="g:SourceReference"
|
||
|
minOccurs='0' />
|
||
|
<xsd:element name="attribute" type="g:Attribute"
|
||
|
minOccurs='0' maxOccurs='unbounded' />
|
||
|
<xsd:element name="note" type="g:Note" minOccurs='0' />
|
||
|
</xsd:sequence>
|
||
|
<xsd:attribute name="id" type="g:ID" />
|
||
|
</xsd:complexType>
|
||
|
<xsd:complexType name="Places">
|
||
|
<xsd:sequence>
|
||
|
<xsd:element name="placeobj" type="g:Place" minOccurs="0"
|
||
|
maxOccurs="unbounded" />
|
||
|
</xsd:sequence>
|
||
|
</xsd:complexType>
|
||
|
<xsd:complexType name="Place">
|
||
|
<xsd:sequence>
|
||
|
<xsd:element name="coord" type="g:Coordinate"
|
||
|
minOccurs="0" />
|
||
|
<xsd:element name="location" type="g:Location" minOccurs="0"
|
||
|
maxOccurs="unbounded" />
|
||
|
<xsd:element name="objref" type="g:ID" minOccurs="0"
|
||
|
maxOccurs="unbounded" />
|
||
|
<xsd:element name="url" type="g:Url" minOccurs="0"
|
||
|
maxOccurs="unbounded" />
|
||
|
<xsd:element name="note" type="g:Note" minOccurs="0" />
|
||
|
</xsd:sequence>
|
||
|
<xsd:attribute name="id" type="g:ID" />
|
||
|
<xsd:attribute name="title" type="xsd:string" />
|
||
|
</xsd:complexType>
|
||
|
<xsd:complexType name="RefType">
|
||
|
<xsd:sequence />
|
||
|
<xsd:attribute name="ref" type="g:ID" />
|
||
|
</xsd:complexType>
|
||
|
<xsd:complexType name="Researcher">
|
||
|
<xsd:sequence>
|
||
|
<xsd:element name="resname" minOccurs="1" maxOccurs="1"
|
||
|
type="xsd:string" />
|
||
|
<xsd:element name="resaddr" minOccurs="0" maxOccurs="1"
|
||
|
type="xsd:string" />
|
||
|
<xsd:element name="rescity" minOccurs="0" maxOccurs="1"
|
||
|
type="xsd:string" />
|
||
|
<xsd:element name="resstate" minOccurs="0" maxOccurs="1"
|
||
|
type="xsd:string" />
|
||
|
<xsd:element name="rescountry" minOccurs="0" maxOccurs="1"
|
||
|
type="xsd:string" />
|
||
|
<xsd:element name="respostal" minOccurs="0" maxOccurs="1"
|
||
|
type="xsd:string" />
|
||
|
<xsd:element name="resphone" minOccurs="0" maxOccurs="1"
|
||
|
type="xsd:string" />
|
||
|
<xsd:element name="resemail" minOccurs="0" maxOccurs="1"
|
||
|
type="xsd:string" />
|
||
|
</xsd:sequence>
|
||
|
</xsd:complexType>
|
||
|
<xsd:complexType name="Sources">
|
||
|
<xsd:sequence>
|
||
|
<xsd:element name="source" type="g:Source" minOccurs="0"
|
||
|
maxOccurs="unbounded" />
|
||
|
</xsd:sequence>
|
||
|
</xsd:complexType>
|
||
|
<xsd:complexType name="Source">
|
||
|
<xsd:all>
|
||
|
<xsd:element name="sauthor" minOccurs="0"
|
||
|
type="xsd:string" />
|
||
|
<xsd:element name="stitle" minOccurs="0" type="xsd:string" />
|
||
|
<xsd:element name="spubinfo" minOccurs="0"
|
||
|
type="xsd:string" />
|
||
|
<xsd:element name="scallno" minOccurs="0"
|
||
|
type="xsd:string" />
|
||
|
</xsd:all>
|
||
|
<xsd:attribute name="id" type="g:ID" />
|
||
|
</xsd:complexType>
|
||
|
<xsd:complexType name="SourceReference">
|
||
|
<xsd:sequence>
|
||
|
<xsd:element name="spage" type="xsd:string" minOccurs="0" />
|
||
|
<xsd:element name="scomments" type="xsd:string"
|
||
|
minOccurs="0" />
|
||
|
<xsd:element name="stext" type="xsd:string" minOccurs="0" />
|
||
|
<xsd:group ref="g:Date" minOccurs="0" />
|
||
|
</xsd:sequence>
|
||
|
<xsd:attribute name="ref" type="g:ID" />
|
||
|
</xsd:complexType>
|
||
|
<xsd:complexType name="Url">
|
||
|
<xsd:sequence />
|
||
|
<xsd:attribute name="href" type="xsd:string" />
|
||
|
<xsd:attribute name="description" type="xsd:string"
|
||
|
use="optional" />
|
||
|
<xsd:attributeGroup ref="g:Property" />
|
||
|
</xsd:complexType>
|
||
|
<!--
|
||
|
====================
|
||
|
GROUPS
|
||
|
====================
|
||
|
-->
|
||
|
<xsd:group name="Date">
|
||
|
<xsd:choice>
|
||
|
<xsd:element name="dateval" type="g:DateValue" />
|
||
|
<xsd:element name="datestr" type="g:DateString" />
|
||
|
<xsd:element name="daterange" type="g:DateRange" />
|
||
|
</xsd:choice>
|
||
|
</xsd:group>
|
||
|
<xsd:attributeGroup name="Property">
|
||
|
<xsd:attribute name="confidence" type="xsd:integer"
|
||
|
use="optional" />
|
||
|
<xsd:attribute name="privacy" type="xsd:integer"
|
||
|
use="optional" />
|
||
|
</xsd:attributeGroup>
|
||
|
<!--
|
||
|
====================
|
||
|
SIMPLE TYPES
|
||
|
====================
|
||
|
-->
|
||
|
<xsd:simpleType name="DateType">
|
||
|
<xsd:restriction base="xsd:string">
|
||
|
<xsd:enumeration value="about" />
|
||
|
<xsd:enumeration value="before" />
|
||
|
<xsd:enumeration value="after" />
|
||
|
</xsd:restriction>
|
||
|
</xsd:simpleType>
|
||
|
<xsd:simpleType name="DateValueType">
|
||
|
<xsd:restriction base="xsd:string" />
|
||
|
</xsd:simpleType>
|
||
|
<xsd:simpleType name="EventType">
|
||
|
<xsd:restriction base="xsd:string">
|
||
|
<xsd:enumeration value="Annulment" />
|
||
|
<xsd:enumeration value="Baptism" />
|
||
|
<xsd:enumeration value="Birth" />
|
||
|
<xsd:enumeration value="Burial" />
|
||
|
<xsd:enumeration value="Christening" />
|
||
|
<xsd:enumeration value="Cremation" />
|
||
|
<xsd:enumeration value="Death" />
|
||
|
<xsd:enumeration value="Degree" />
|
||
|
<xsd:enumeration value="Divorce" />
|
||
|
<xsd:enumeration value="Education" />
|
||
|
<xsd:enumeration value="Engagement" />
|
||
|
<xsd:enumeration value="Graduation" />
|
||
|
<xsd:enumeration value="Immi" />
|
||
|
<xsd:enumeration value="Marriage" />
|
||
|
<xsd:enumeration value="Occupation" />
|
||
|
<xsd:enumeration value="Religion" />
|
||
|
<xsd:enumeration value="SUBM" />
|
||
|
</xsd:restriction>
|
||
|
</xsd:simpleType>
|
||
|
<xsd:simpleType name="Gender">
|
||
|
<xsd:restriction base="xsd:string">
|
||
|
<xsd:enumeration value="M" />
|
||
|
<xsd:enumeration value="F" />
|
||
|
<xsd:enumeration value="U" />
|
||
|
</xsd:restriction>
|
||
|
</xsd:simpleType>
|
||
|
<xsd:simpleType name="ID">
|
||
|
<xsd:restriction base="xsd:string" />
|
||
|
</xsd:simpleType>
|
||
|
<xsd:simpleType name="MarriageType">
|
||
|
<xsd:restriction base="xsd:string">
|
||
|
<xsd:enumeration value="Married" />
|
||
|
<xsd:enumeration value="Unmarried" />
|
||
|
<xsd:enumeration value="Partners" />
|
||
|
<xsd:enumeration value="Other" />
|
||
|
<xsd:enumeration value="Unknown" />
|
||
|
</xsd:restriction>
|
||
|
</xsd:simpleType>
|
||
|
<xsd:simpleType name="NameType">
|
||
|
<xsd:restriction base="xsd:string">
|
||
|
<xsd:enumeration value="Birth Name" />
|
||
|
<xsd:enumeration value="Also Known As" />
|
||
|
</xsd:restriction>
|
||
|
</xsd:simpleType>
|
||
|
<xsd:simpleType name="Note">
|
||
|
<xsd:restriction base="xsd:string" />
|
||
|
</xsd:simpleType>
|
||
|
<xsd:simpleType name="RelationType">
|
||
|
<xsd:restriction base="xsd:string">
|
||
|
<xsd:enumeration value="Adopted" />
|
||
|
<xsd:enumeration value="Birth" />
|
||
|
<xsd:enumeration value="Foster" />
|
||
|
<xsd:enumeration value="Other" />
|
||
|
<xsd:enumeration value="Stepchild" />
|
||
|
<xsd:enumeration value="Unknown" />
|
||
|
</xsd:restriction>
|
||
|
</xsd:simpleType>
|
||
|
</xsd:schema>
|