[Bedework-commit] bwxml r16 - in trunk: . schemas schemas/tzsvr
schemas/vcard vcard
svnadmin at bedework.org
svnadmin at bedework.org
Tue Mar 8 14:53:50 EST 2011
Author: douglm
Date: 2011-03-08 14:53:49 -0500 (Tue, 08 Mar 2011)
New Revision: 16
Added:
trunk/schemas/vcard/
trunk/schemas/vcard/vcard.xsd
trunk/vcard/
trunk/vcard/gensrc/
Modified:
trunk/build.properties
trunk/build.xml
trunk/schemas/tzsvr/tzservice.xsd
Log:
Add vcard schema
Modified: trunk/build.properties
===================================================================
--- trunk/build.properties 2011-03-07 20:33:31 UTC (rev 15)
+++ trunk/build.properties 2011-03-08 19:53:49 UTC (rev 16)
@@ -12,4 +12,5 @@
org.bedework.module.exchangewsschema.jar=bw-exchangewsschema
org.bedework.module.exsynchwsschema.jar=bw-exsynchwsschema
org.bedework.module.tzschema.jar=bw-tzschema
+org.bedework.module.vcardschema.jar=bw-vcardschema
Modified: trunk/build.xml
===================================================================
--- trunk/build.xml 2011-03-07 20:33:31 UTC (rev 15)
+++ trunk/build.xml 2011-03-08 19:53:49 UTC (rev 16)
@@ -58,6 +58,9 @@
<property name="org.bedework.tzsvc.base"
location="${project.home}/timezones" />
+ <property name="org.bedework.vcard.base"
+ location="${project.home}/vcard" />
+
<property name="exchangews.jar"
location="${dist.home}/${org.bedework.module.exchangewsschema.jar}-${project.version}.jar" />
@@ -66,6 +69,9 @@
<property name="tzsvc.jar"
location="${dist.home}/${org.bedework.module.tzschema.jar}-${project.version}.jar" />
+
+ <property name="vcard.jar"
+ location="${dist.home}/${org.bedework.module.vcardschema.jar}-${project.version}.jar" />
<property name="exchange.wsdllocation"
value="${bedework-options.org.bedework.app.Exsynch.exchangeWSDLURI}" />
@@ -114,6 +120,13 @@
bindingsdir="${project.home}/xjcbindings"
dependencies="org.bedework.schemas.files"
/>
+
+ <!-- vcard -->
+ <xjc schema="${org.bedework.schemas.base}/vcard/vcard.xsd"
+ module-base="${org.bedework.vcard.base}/gensrc"
+ jar-file="${vcard.jar}"
+ bindingsdir="${project.home}/xjcbindings"
+ />
<build-jar-stats />
</target>
Modified: trunk/schemas/tzsvr/tzservice.xsd
===================================================================
--- trunk/schemas/tzsvr/tzservice.xsd 2011-03-07 20:33:31 UTC (rev 15)
+++ trunk/schemas/tzsvr/tzservice.xsd 2011-03-08 19:53:49 UTC (rev 16)
@@ -4,9 +4,9 @@
xmlns:xcal="urn:ietf:params:xml:ns:icalendar-2.0"
targetNamespace="urn:ietf:params:xml:ns:timezone-service"
elementFormDefault="qualified">
- <!-- =====================================================================
+ <!-- =============================================================
Timezones service XML schema
- ===================================================================== -->
+ ============================================================= -->
<import schemaLocation="../xml.xsd"
namespace="http://www.w3.org/XML/1998/namespace" />
@@ -14,17 +14,18 @@
<import schemaLocation="../icalendar/iCalendar.xsd"
namespace="urn:ietf:params:xml:ns:icalendar-2.0" />
- <!-- *********************************************************************
+ <!-- *************************************************************
basic types
- ********************************************************************* -->
+ ************************************************************* -->
<simpleType name="CalscaleType">
<annotation>
<documentation xml:lang="en">
The calendar system defines how rules, dates and times are to be
interpreted. Currently only the value "Gregorian" is supported,
- referring to the Gregorian calendar scale. If this element is not
- present in its normal context, then the value "Gregorian" MUST be assumed.
+ referring to the Gregorian calendar scale. If this element is
+ not present in its normal context, then the value "Gregorian"
+ MUST be assumed.
</documentation>
</annotation>
<restriction base="string"/>
@@ -33,8 +34,8 @@
<simpleType name="DtstampType">
<annotation>
<documentation xml:lang="en">
- Provides the UTC date and time when a substantive change was made to the
- timezone data.
+ Provides the UTC date and time when a substantive change was
+ made to the timezone data.
</documentation>
</annotation>
<restriction base="string"/>
@@ -43,7 +44,8 @@
<simpleType name="LastmodifiedType">
<annotation>
<documentation xml:lang="en">
- Provides the UTC date and time that the timezone data was last modified.
+ Provides the UTC date and time that the timezone data was last
+ modified.
</documentation>
</annotation>
<restriction base="string"/>
@@ -52,16 +54,18 @@
<complexType name="LocalNameType">
<annotation>
<documentation xml:lang="en">
- Defines one or more localized names that are used when a timezone
- identifier needs to be presented to a user. The xml:lang attribute is
- used to indicate the language associated with each value. If multiple
- names are provided for the same locale the first is considered the
- preferred name.
+ Defines one or more localized names that are used when a
+ timezone identifier needs to be presented to a user.
+ The xml:lang attribute is used to indicate the language
+ associated with each value.
+ If multiple names are provided for the same locale the first is
+ considered the preferred name.
</documentation>
</annotation>
<simpleContent>
<extension base="string">
<attribute ref="xml:lang" />
+ <attribute name="pref" type="boolean" />
</extension>
</simpleContent>
</complexType>
@@ -69,7 +73,8 @@
<simpleType name="OnsetType">
<annotation>
<documentation xml:lang="en">
- The onset element defines the local time at which the observance takes effect.
+ The onset element defines the local time at which the
+ observance takes effect.
</documentation>
</annotation>
<restriction base="string"/>
@@ -78,7 +83,8 @@
<simpleType name="TzidType">
<annotation>
<documentation xml:lang="en">
- The text value is the identifier of the timezone being referred to.
+ The text value is the identifier of the timezone being
+ referred to.
</documentation>
</annotation>
<restriction base="string"/>
@@ -87,8 +93,8 @@
<simpleType name="UtcOffsetFromType">
<annotation>
<documentation xml:lang="en">
- The utc-offset-from element defines the UTC offset in hours and minutes
- before the start of this observance.
+ The utc-offset-from element defines the UTC offset in hours
+ and minutes before the start of this observance.
</documentation>
</annotation>
<restriction base="string"/>
@@ -97,8 +103,8 @@
<simpleType name="UtcOffsetToType">
<annotation>
<documentation xml:lang="en">
- The utc-offset-to element defines the UTC offset in hours and minutes at
- and after the start of this observance.
+ The utc-offset-to element defines the UTC offset in hours and
+ minutes at and after the start of this observance.
</documentation>
</annotation>
<restriction base="string"/>
@@ -107,8 +113,9 @@
<complexType name="AliasType">
<annotation>
<documentation xml:lang="en">
- Defines alternative identifiers that can be used for the timezone. This
- feature allows mapping of old identifiers onto new.
+ Defines alternative identifiers that can be used for the
+ timezone. This feature allows mapping of old identifiers
+ onto new.
</documentation>
</annotation>
<simpleContent>
@@ -120,14 +127,15 @@
<complexType name="BaseResultType" abstract="true" />
- <!-- *********************************************************************
+ <!-- *************************************************************
capabilities response
- ********************************************************************* -->
+ ************************************************************* -->
<complexType name="CapabilitiesAcceptParameterType">
<annotation>
<documentation xml:lang="en">
- This defines the name, type and characteristics of an operation parameter.
+ This defines the name, type and characteristics of an operation
+ parameter.
</documentation>
</annotation>
<sequence>
@@ -142,14 +150,15 @@
<complexType name="CapabilitiesOperationType">
<annotation>
<documentation xml:lang="en">
- The element used as the container for information defining an operation
- and its parameters. .
+ The element used as the container for information defining an
+ operation and its parameters. .
</documentation>
</annotation>
<sequence>
<element name="action" type="string" />
<element name="description" type="string" />
- <element name="accept-parameter" type="tns:CapabilitiesAcceptParameterType"
+ <element name="accept-parameter"
+ type="tns:CapabilitiesAcceptParameterType"
maxOccurs="unbounded" />
</sequence>
</complexType>
@@ -157,13 +166,15 @@
<complexType name="CapabilitiesType">
<annotation>
<documentation xml:lang="en">
- The root (top-level) element used as the container for capabilities information.
+ The root (top-level) element used as the container for
+ capabilities information.
</documentation>
</annotation>
<complexContent mixed="false">
<extension base="tns:BaseResultType">
<sequence>
- <element name="operation" type="tns:CapabilitiesOperationType"
+ <element name="operation"
+ type="tns:CapabilitiesOperationType"
maxOccurs="unbounded" />
</sequence>
</extension>
@@ -172,15 +183,15 @@
<element name="capabilities" type="tns:CapabilitiesType" />
- <!-- *********************************************************************
+ <!-- *************************************************************
list response
- ********************************************************************* -->
+ ************************************************************* -->
<complexType name="SummaryType">
<annotation>
<documentation xml:lang="en">
- This defines the element that provides summary information for a timezone
- in the timezones list.
+ This defines the element that provides summary information for a
+ timezone in the timezones list.
</documentation>
</annotation>
<sequence >
@@ -196,15 +207,17 @@
<complexType name="TimezoneListType">
<annotation>
<documentation xml:lang="en">
- This defines the root (top-level) element used as the container for
- a timezone listing.
+ This defines the root (top-level) element used as the container
+ for a timezone listing.
</documentation>
</annotation>
<complexContent mixed="false">
<extension base="tns:BaseResultType">
<sequence >
- <element name="dtstamp" type="tns:DtstampType" minOccurs="1" />
- <element name="summary" type="tns:SummaryType"
+ <element name="dtstamp"
+ type="tns:DtstampType" minOccurs="1" />
+ <element name="summary"
+ type="tns:SummaryType"
maxOccurs="unbounded" />
</sequence>
</extension>
@@ -213,15 +226,15 @@
<element name="timezone-list" type="tns:TimezoneListType" />
- <!-- *********************************************************************
+ <!-- ************************************************************
expand response
- ********************************************************************* -->
+ ************************************************************* -->
<complexType name="ObservanceType">
<annotation>
<documentation xml:lang="en">
- In an expanded timezone, the observance element specifies a single
- timezone observance.
+ In an expanded timezone, the observance element specifies a
+ single timezone observance.
</documentation>
</annotation>
<sequence>
@@ -229,16 +242,18 @@
<element name="local-name" type="tns:LocalNameType"
maxOccurs="unbounded" />
<element name="onset" type="tns:OnsetType" minOccurs="1" />
- <element name="utc-offset-from" type="tns:UtcOffsetFromType" minOccurs="1" />
- <element name="utc-offset-to" type="tns:UtcOffsetToType" minOccurs="1" />
+ <element name="utc-offset-from"
+ type="tns:UtcOffsetFromType" minOccurs="1" />
+ <element name="utc-offset-to" type="tns:UtcOffsetToType"
+ minOccurs="1" />
</sequence>
</complexType>
<complexType name="TzdataType">
<annotation>
<documentation xml:lang="en">
- This element specifies expanded timezone data for the range specified in
- a request.
+ This element specifies expanded timezone data for the range
+ specified in a request.
</documentation>
</annotation>
<sequence>
@@ -252,14 +267,15 @@
<complexType name="TimezonesType">
<annotation>
<documentation xml:lang="en">
- This defines the root (top-level) element used as the container for
- expanded timezone data.
+ This defines the root (top-level) element used as the container
+ for expanded timezone data.
</documentation>
</annotation>
<complexContent mixed="false">
<extension base="tns:BaseResultType">
<sequence >
- <element name="dtstamp" type="tns:DtstampType" minOccurs="1" />
+ <element name="dtstamp"
+ type="tns:DtstampType" minOccurs="1" />
<element name="tzdata" type="tns:TzdataType"
maxOccurs="unbounded" />
</sequence>
@@ -269,3 +285,4 @@
<element name="timezones" type="tns:TimezonesType" />
</schema>
+
Added: trunk/schemas/vcard/vcard.xsd
===================================================================
--- trunk/schemas/vcard/vcard.xsd (rev 0)
+++ trunk/schemas/vcard/vcard.xsd 2011-03-08 19:53:49 UTC (rev 16)
@@ -0,0 +1,496 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:v="urn:ietf:params:xml:ns:vcard-4.0"
+ targetNamespace="urn:ietf:params:xml:ns:vcard-4.0"
+ elementFormDefault="qualified">
+
+ <!-- =============================================================
+ Value Types
+ ============================================================= -->
+
+ <xs:element name="text" type="xs:string"/>
+
+ <xs:simpleType name="UriType">
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+
+ <xs:element name="uri" type="v:UriType" />
+
+ <xs:element name="date">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\d{8}|\d{4}-\d\d|--\d\d(\d\d)?|---\d\d"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+
+ <xs:element name="time">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="(\d\d(\d\d(\d\d)?)?|-\d\d(\d\d?)|--\d\d)(Z|[+\-]\d\d(\d\d)?)?"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+
+ <xs:element name="date-time">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="(\d{8}|--\d{4}|---\d\d)T\d\d(\d\d(\d\d)?)?(Z|[+\-]\d\d(\d\d)?)?"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+
+ <xs:complexType name="DateAndOrTimeType">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element ref="v:date" />
+ <xs:element ref="v:date-time" />
+ <xs:element ref="v:time" />
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:element name="date-and-or-time" type="v:DateAndOrTimeType" />
+
+ <xs:element name="timestamp">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\d{8}T\d{6}(Z|[+\-]\d\d(\d\d)?)?"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+
+ <xs:element name="boolean" type="xs:boolean" />
+
+ <xs:element name="integer" type="xs:integer" />
+
+ <xs:element name="float" type="xs:float" />
+
+ <xs:element name="language-tag">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="([a-z]{2,3}((-[a-z]{3}){0,3})?|[a-z]{4,8})(-[a-z]{4})?(-([a-z]{2}|\d{3}))?(-([0-9a-z]{5,8}|\d[0-9a-z]{3}))*(-[0-9a-wyz](-[0-9a-z]{2,8})+)*(-x(-[0-9a-z]{1,8})+)?|x(-[0-9a-z]{1,8})+|[a-z]{1,3}(-[0-9a-z]{2,8}){1,2}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+
+ <xs:element name="pid-val">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\d+(\.\d+)?"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+
+ <!-- =============================================================
+ Parameters
+ ============================================================= -->
+
+ <xs:complexType name="BaseParameterType" abstract="true" >
+ </xs:complexType>
+
+ <xs:element name="baseParameter" type="v:BaseParameterType" />
+
+ <xs:complexType name="ArrayOfParameters">
+ <xs:sequence>
+ <xs:element ref="v:baseParameter" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:element name="language" type="v:LanguageParamType"
+ substitutionGroup="v:baseParameter" />
+
+ <xs:element name="pref" type="v:PrefParamType"
+ substitutionGroup="v:baseParameter" />
+
+ <xs:element name="altid" type="v:TextParamType"
+ substitutionGroup="v:baseParameter" />
+
+ <xs:element name="pid" type="v:PidParamType"
+ substitutionGroup="v:baseParameter" />
+
+ <xs:element name="type" type="v:TextParamType"
+ substitutionGroup="v:baseParameter" />
+
+ <xs:element name="calscale" type="v:TextParamType"
+ substitutionGroup="v:baseParameter" />
+
+ <xs:element name="sort-as" type="v:TextListParamType"
+ substitutionGroup="v:baseParameter" />
+
+ <!-- Renamed from geo -->
+ <xs:element name="geoloc" type="v:UriParamType"
+ substitutionGroup="v:baseParameter" />
+
+ <!-- Renamed from tz -->
+ <xs:element name="tzid" type="v:TzParamType"
+ substitutionGroup="v:baseParameter" />
+
+ <xs:element name="label" type="v:TextParamType"
+ substitutionGroup="v:baseParameter" />
+
+ <!-- Parameters that take a simple text value -->
+ <xs:complexType name="TextParamType" >
+ <xs:complexContent mixed="false">
+ <xs:extension base="v:BaseParameterType">
+ <xs:sequence>
+ <xs:element ref="v:text" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Parameters that take one or more simple text value -->
+ <xs:complexType name="TextListParamType" >
+ <xs:complexContent mixed="false">
+ <xs:extension base="v:BaseParameterType">
+ <xs:sequence>
+ <xs:element ref="v:text" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Parameters that take a uri value -->
+ <xs:complexType name="UriParamType" >
+ <xs:complexContent mixed="false">
+ <xs:extension base="v:BaseParameterType">
+ <xs:sequence>
+ <xs:element ref="v:uri"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="PrefParamType" >
+ <xs:complexContent mixed="false">
+ <xs:extension base="v:BaseParameterType">
+ <xs:sequence>
+ <xs:element ref="v:text" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="TzParamType" >
+ <xs:complexContent mixed="false">
+ <xs:extension base="v:BaseParameterType">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element ref="v:text" />
+ <xs:element ref="v:uri"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="LanguageParamType" >
+ <xs:complexContent mixed="false">
+ <xs:extension base="v:BaseParameterType">
+ <xs:sequence>
+ <xs:element ref="v:language-tag" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="PidParamType" >
+ <xs:complexContent mixed="false">
+ <xs:extension base="v:BaseParameterType">
+ <xs:sequence>
+ <xs:element ref="v:pid-val" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- =============================================================
+ Properties
+ ============================================================= -->
+
+ <!-- =====================================================================
+ BasePropertyType
+ All properties are based off this type which defines a property as
+ nothing more than a list of parameters.
+
+ We make no attempt to define valid parameters for each property as this
+ would complicate the schema significantly. Consumers can ignore
+ property parameters they do not understand or expect.
+ ===================================================================== -->
+ <xs:complexType name="BasePropertyType" abstract="true" >
+ <xs:sequence>
+ <xs:element name="parameters" type="v:ArrayOfParameters"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:element name="baseProperty" type="v:BasePropertyType" />
+
+ <xs:complexType name="ArrayOfProperties">
+ <xs:sequence>
+ <xs:element ref="v:baseProperty" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:element name="source" type="v:UriPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <!-- "individual" | "group" | "org" | "location" -->
+ <xs:element name="kind" type="v:TextPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="fn" type="v:TextPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="n" type="v:NamePropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="nickname" type="v:TextListPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="photo" type="v:UriPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="bday" type="v:BdayPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="anniversary" type="v:BdayPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <!-- "male" | "female" -->
+ <xs:element name="gender" type="v:TextPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="adr" type="v:AdrPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="tel" type="v:TextUriPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="email" type="v:TextPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="impp" type="v:UriPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="lang" type="v:LangPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="tz" type="v:TextUriPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="geo" type="v:UriPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="title" type="v:TextPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="role" type="v:TextPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="logo" type="v:UriPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="org" type="v:TextListPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="member" type="v:UriPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="related" type="v:TextUriPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="categories" type="v:TextListPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="note" type="v:TextPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="prodid" type="v:TextPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="rev" type="v:TimestampPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="sound" type="v:UriPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="uid" type="v:UriPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="clientpidmap" type="v:ClientPidmapPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="url" type="v:UriPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="key" type="v:TextUriPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="fburl" type="v:UriPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="caladruri" type="v:UriPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:element name="caluri" type="v:UriPropertyType"
+ substitutionGroup="v:baseProperty" />
+
+ <xs:complexType name="NamePropertyType" >
+ <xs:complexContent mixed="false">
+ <xs:extension base="v:BasePropertyType">
+ <xs:sequence>
+ <xs:element name="surname" type="v:TextListPropertyType"
+ minOccurs="0" />
+ <xs:element name="given" type="v:TextListPropertyType"
+ minOccurs="0" />
+ <xs:element name="additional" type="v:TextListPropertyType"
+ minOccurs="0" />
+ <xs:element name="prefix" type="v:TextListPropertyType"
+ minOccurs="0" />
+ <xs:element name="suffix" type="v:TextListPropertyType"
+ minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="BdayPropertyType" >
+ <xs:complexContent mixed="false">
+ <xs:extension base="v:BasePropertyType">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element ref="v:date-and-or-time" />
+ <xs:element ref="v:text" />
+ </xs:choice>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ClientPidmapPropertyType" >
+ <xs:complexContent mixed="false">
+ <xs:extension base="v:BasePropertyType">
+ <xs:sequence>
+ <xs:element name="sourceid" type="xs:integer" />
+ <xs:element ref="v:uri" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="AdrPropertyType" >
+ <xs:complexContent mixed="false">
+ <xs:extension base="v:BasePropertyType">
+ <xs:sequence>
+ <xs:element name="pobox" type="v:TextListPropertyType"
+ minOccurs="0" />
+ <xs:element name="ext" type="v:TextListPropertyType"
+ minOccurs="0" />
+ <xs:element name="street" type="v:TextListPropertyType"
+ minOccurs="0" />
+ <xs:element name="locality" type="v:TextListPropertyType"
+ minOccurs="0" />
+ <xs:element name="region" type="v:TextListPropertyType"
+ minOccurs="0" />
+ <xs:element name="code" type="v:TextListPropertyType"
+ minOccurs="0" />
+ <xs:element name="country" type="v:TextListPropertyType"
+ minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="TextUriPropertyType" >
+ <xs:complexContent mixed="false">
+ <xs:extension base="v:BasePropertyType">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element ref="v:uri" />
+ <xs:element ref="v:text" />
+ </xs:choice>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="LangPropertyType" >
+ <xs:complexContent mixed="false">
+ <xs:extension base="v:BasePropertyType">
+ <xs:sequence>
+ <xs:element ref="v:language-tag" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Properties that take a simple text value -->
+ <xs:complexType name="TextPropertyType" >
+ <xs:complexContent mixed="false">
+ <xs:extension base="v:BasePropertyType">
+ <xs:sequence>
+ <xs:element ref="v:text" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="TextListPropertyType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="v:BasePropertyType">
+ <xs:sequence>
+ <xs:element ref="v:text" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="TimestampPropertyType" >
+ <xs:complexContent mixed="false">
+ <xs:extension base="v:BasePropertyType">
+ <xs:sequence>
+ <xs:element ref="v:timestamp" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Properties that take a uri value -->
+ <xs:complexType name="UriPropertyType" >
+ <xs:complexContent mixed="false">
+ <xs:extension base="v:BasePropertyType">
+ <xs:sequence>
+ <xs:element ref="v:uri"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- =============================================================
+ Vcard components
+ ============================================================= -->
+
+ <!-- Vcard Stream -->
+ <xs:complexType name="VcardsType">
+ <xs:sequence>
+ <xs:element name="vcards" type="v:VcardType" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="GroupType" >
+ <xs:sequence>
+ <xs:element name="properties" type="v:ArrayOfProperties"/>
+ </xs:sequence>
+ <xs:attribute name="name" type="xs:string"/>
+ </xs:complexType>
+
+ <xs:complexType name="VcardType" >
+ <xs:sequence maxOccurs="unbounded">
+ <xs:choice>
+ <xs:element name="properties" type="v:ArrayOfProperties"/>
+ <xs:element name="group" type="v:GroupType"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
More information about the Bedework-commit
mailing list