Schema:
<?xml version="1.0" encoding="ISO-8859-1" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://indivo.org/vocab/xml/documents#"> <xs:element name="Contact"> <xs:complexType> <xs:sequence> <xs:element name="name" minOccurs="1"> <xs:complexType> <xs:sequence> <xs:element name="fullName" type="xs:string" minOccurs="1" maxOccurs="1" /> <xs:element name="givenName" type="xs:string" minOccurs="1" maxOccurs="unbounded" /> <xs:element name="familyName" type="xs:string" minOccurs="1" maxOccurs="1" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="email" minOccurs="1" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="type" type="xs:string" /> </xs:extension> <!-- for now no restriction until we figure out a clean way to combine it with above <xs:restriction base="xs:string"> <xs:pattern value="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"/> </xs:restriction>--> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="address" minOccurs="1" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="streetAddress" type="xs:string" minOccurs="1" /> <xs:element name="postalCode" type="xs:string" minOccurs="1" /> <xs:element name="locality" type="xs:string" minOccurs="1" /> <xs:element name="region" type="xs:string" minOccurs="1" /> <xs:element name="country" type="xs:string" minOccurs="1" /> <xs:element name="timeZone" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:attribute name="type" type="xs:string" /> </xs:complexType> </xs:element> <xs:element name="location" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="latitude" type="xs:string" /> <xs:element name="longitude" type="xs:string" /> </xs:sequence> <xs:attribute name="type" type="xs:string" /> </xs:complexType> </xs:element> <xs:element name="phoneNumber" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="type" type="xs:string" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="instantMessengerName" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="protocol" type="xs:string" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="thumbnail" type="xs:string" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
Example:
<Contact xmlns="http://indivo.org/vocab/xml/documents#">
<name>
<fullName>Sebastian Rockwell Cotour</fullName>
<givenName>Sebastian</givenName>
<familyName>Cotour</familyName>
</name>
<email type="personal">
scotour@hotmail.com
</email>
<email type="work">
sebastian.cotour@childrens.harvard.edu
</email>
<address type="home">
<streetAddress>15 Waterhill Ct.</streetAddress>
<postalCode>53326</postalCode>
<locality>New Brinswick</locality>
<region>Montana</region>
<country>US</country>
<timeZone>-7GMT</timeZone>
</address>
<phoneNumber type="home">5212532532</phoneNumber>
<phoneNumber type="work">6217233734</phoneNumber>
<instantMessengerName protocol="aim">scotour</instantMessengerName>
</Contact>