[Bedework-commit] bwxml r1 - / trunk trunk/exsynchws
trunk/exsynchws/wsdlbindings trunk/schemas
trunk/schemas/icalendar trunk/schemas/tzsvr trunk/timezones
trunk/xjcbindings
svnadmin at bedework.org
svnadmin at bedework.org
Thu Feb 17 16:15:46 EST 2011
Author: douglm
Date: 2011-02-17 16:15:44 -0500 (Thu, 17 Feb 2011)
New Revision: 1
Added:
trunk/
trunk/build.properties
trunk/build.xml
trunk/exsynchws/
trunk/exsynchws/gensrc/
trunk/exsynchws/patch-errors.xsd
trunk/exsynchws/patch.xsd
trunk/exsynchws/wsdlbindings/
trunk/exsynchws/wsdlbindings/custom-binding.xml
trunk/exsynchws/wsdlbindings/simplebinding.xml
trunk/exsynchws/wsmessages.xsd
trunk/exsynchws/wssvc.wsdl
trunk/schemas/
trunk/schemas/icalendar/
trunk/schemas/icalendar/iCalendar-availability-extension.xsd
trunk/schemas/icalendar/iCalendar-bw-extensions.xsd
trunk/schemas/icalendar/iCalendar-link-extension.xsd
trunk/schemas/icalendar/iCalendar-ms-extensions.xsd
trunk/schemas/icalendar/iCalendar-params.xsd
trunk/schemas/icalendar/iCalendar-props.xsd
trunk/schemas/icalendar/iCalendar-valtypes.xsd
trunk/schemas/icalendar/iCalendar-wscal-extensions.xsd
trunk/schemas/icalendar/iCalendar.xsd
trunk/schemas/tzsvr/
trunk/schemas/tzsvr/tzservice.xsd
trunk/schemas/xml.xsd
trunk/timezones/
trunk/timezones/gensrc/
trunk/xjcbindings/
trunk/xjcbindings/simplebinding.xml
Log:
Import of new project
Added: trunk/build.properties
===================================================================
--- trunk/build.properties (rev 0)
+++ trunk/build.properties 2011-02-17 21:15:44 UTC (rev 1)
@@ -0,0 +1,14 @@
+#
+# Properties for the xml schemas build.
+#
+
+# Name of this package
+org.bedework.package.name=xmlschema package
+
+# Version we are building
+org.bedework.xmlschema.version=3.7
+
+# Name of generated jar files
+org.bedework.module.exsynchwsschema.jar=bw-exsynchwsschema
+org.bedework.module.tzschema.jar=bw-tzschema
+
Added: trunk/build.xml
===================================================================
--- trunk/build.xml (rev 0)
+++ trunk/build.xml 2011-02-17 21:15:44 UTC (rev 1)
@@ -0,0 +1,132 @@
+<?xml version="1.0"?>
+
+<!-- This is the main build file for the XML schemas module.
+
+ Authors: Mike Douglass douglm rpi.edu
+-->
+
+<project name="xmlschema" default="build">
+ <taskdef resource="net/sf/antcontrib/antcontrib.properties" />
+
+ <property environment="env"/>
+ <dirname property="project.home" file="${ant.file}"/>
+
+ <property file="${project.home}/build.properties" />
+
+ <property name="bedework.home"
+ location="${project.home}/../bedework" />
+
+ <property name="build.dir" location="${bedework.home}/build"/>
+
+ <import file="${build.dir}/buildTools/deftasks.xml"/>
+
+ <deftasks/>
+
+ <projectDefs name="${org.bedework.package.name}"
+ version="${org.bedework.xmlschema.version}"
+ deployment-name="xmlschema"
+ />
+
+ <import file="${build.dir}/loadDeployConfig.xml"/>
+ <import file="${build.dir}/buildTools/wsimport.xml"/>
+ <import file="${build.dir}/buildTools/xjc.xml"/>
+
+ <!-- =================================================================
+ init:
+ ================================================================= -->
+
+ <target name="init">
+ <projectInit/>
+
+ <property name="org.bedework.project.bedework"
+ location="${project.home}/../bedework" />
+
+ <loadDeployConfig/>
+
+ <property name="org.bedework.options.file"
+ value="${org.bedework.config.options}" />
+
+ <property name="org.bedework.schemas.base"
+ location="${project.home}/schemas" />
+
+ <property name="org.bedework.exsynchws.base"
+ location="${project.home}/exsynchws" />
+
+ <property name="org.bedework.tzsvc.base"
+ location="${project.home}/timezones" />
+
+ <property name="exsynchws.jar"
+ location="${dist.home}/${org.bedework.module.exsynchwsschema.jar}-${project.version}.jar" />
+
+ <property name="tzsvc.jar"
+ location="${dist.home}/${org.bedework.module.tzschema.jar}-${project.version}.jar" />
+ </target>
+
+ <target name="deploy-init" depends="init">
+ <!-- No deployment -->
+ </target>
+
+ <!-- ===================== build-source Target ===============================
+ This target builds jar files ready for the deploy target.
+ =================================================================== -->
+
+ <target name="build-source" >
+ <!-- Exsynch - web service -->
+ <wsimport wsdl="${org.bedework.exsynchws.base}/wssvc.wsdl"
+ module-base="${org.bedework.exsynchws.base}/gensrc"
+ jar-file="${exsynchws.jar}"
+ bindingsdir="${org.bedework.exsynchws.base}/wsdlbindings"
+ />
+
+ <!-- Timezones - XML data -->
+ <xjc schema="${org.bedework.schemas.base}/tzsvr/tzservice.xsd"
+ module-base="${org.bedework.tzsvc.base}/gensrc"
+ jar-file="${tzsvc.jar}"
+ bindingsdir="${project.home}/xjcbindings"
+ />
+
+ <build-jar-stats />
+ </target>
+
+ <!-- ===================== deploy Target ===============================
+ Deploy if an application server is defined.
+ =================================================================== -->
+
+ <target name="deploy" depends="deploy-init,build"
+ description="Deploy generated files">
+ <!-- No deployment -->
+ </target>
+
+<!-- ==================== Javadoc Target ===============================
+ The "javadoc" target creates Javadoc API documentation for the Java
+ classes included in your application. Normally, this is only required
+ when preparing a distribution release, but is available as a separate
+ target in case the developer wants to create Javadocs independently.
+ =================================================================== -->
+
+ <target name="javadoc" depends="init"
+ description="Create Javadoc API documentation">
+ <property name="destdir" location="${dist.home}/docs/api"/>
+ <mkdir dir="${destdir}"/>
+
+ <javadoc sourcepath="${org.bedework.module.common.base}/src:${org.bedework.module.service.base}/src:${org.bedework.module.server.base}/src:"
+ classpathref="compile.classpath"
+ destdir="${destdir}"
+ packagenames="org.bedework.*,
+ edu.rpi.*"
+ access="public"
+ author="true"
+ version="true"
+ breakiterator="yes"
+ windowtitle="${project.name} ${project.version} API Documentation">
+ <doctitle><![CDATA[${project.name} ${project.version}<br/>API Documentation]]></doctitle>
+ <header><![CDATA[${project.name} ${project.version}<br/>API Documentation]]></header>
+ <link href="../../access/api" />
+ <link href="../../calendarapi/api" />
+ <link href="../../davutil/api" />
+ <link href="../../rpiutil/api" />
+ <link href="../../webdav/api" />
+ <link href="${env.JAVA_HOME}/docs/api" />
+ </javadoc>
+ </target>
+</project>
Added: trunk/exsynchws/patch-errors.xsd
===================================================================
--- trunk/exsynchws/patch-errors.xsd (rev 0)
+++ trunk/exsynchws/patch-errors.xsd 2011-02-17 21:15:44 UTC (rev 1)
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This is the schema for the XML patch errors defined in RFC 5261
+-->
+
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="urn:ietf:params:xml:ns:patch-ops-error"
+ targetNamespace="urn:ietf:params:xml:ns:patch-ops-error"
+ elementFormDefault="qualified"
+ attributeFormDefault="unqualified">
+
+ <!-- This import brings in the XML language attribute xml:lang-->
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace"
+ schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
+ <!-- ROOT document element for signaling patch-ops errors -->
+ <xsd:element name="patch-ops-error">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:any namespace="##any" processContents="lax"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:anyAttribute processContents="lax"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <!-- patch-ops error elements:
+ not intended to be used as root documnet elements -->
+ <xsd:element name="invalid-attribute-value"
+ type="tns:patch-error"/>
+ <xsd:element name="invalid-character-set"
+ type="tns:patch-error-simple"/>
+ <xsd:element name="invalid-diff-format"
+ type="tns:patch-error-simple"/>
+ <xsd:element name="invalid-entity-declaration"
+ type="tns:patch-error"/>
+ <xsd:element name="invalid-namespace-prefix"
+ type="tns:patch-error"/>
+ <xsd:element name="invalid-namespace-uri"
+ type="tns:patch-error"/>
+ <xsd:element name="invalid-node-types"
+ type="tns:patch-error"/>
+ <xsd:element name="invalid-patch-directive"
+ type="tns:patch-error"/>
+ <xsd:element name="invalid-root-element-operation"
+ type="tns:patch-error"/>
+ <xsd:element name="invalid-xml-prolog-operation"
+ type="tns:patch-error"/>
+ <xsd:element name="invalid-whitespace-directive"
+ type="tns:patch-error"/>
+ <xsd:element name="unlocated-node"
+ type="tns:patch-error"/>
+ <xsd:element name="unsupported-id-function"
+ type="tns:patch-error"/>
+ <xsd:element name="unsupported-xml-id"
+ type="tns:patch-error"/>
+
+ <!-- simple patch-ops error type -->
+ <xsd:complexType name="patch-error-simple">
+ <xsd:attribute name="phrase" type="xsd:string"/>
+ <xsd:attribute ref="xml:lang"/>
+ <xsd:anyAttribute processContents="lax"/>
+ </xsd:complexType>
+
+ <!-- error type which includes patch operation -->
+ <xsd:complexType name="patch-error">
+ <xsd:sequence>
+ <xsd:any namespace="##any" processContents="lax"/>
+ </xsd:sequence>
+ <xsd:attribute name="phrase" type="xsd:string"/>
+ <xsd:attribute ref="xml:lang"/>
+ <xsd:anyAttribute processContents="lax"/>
+ </xsd:complexType>
+</xsd:schema>
Added: trunk/exsynchws/patch.xsd
===================================================================
--- trunk/exsynchws/patch.xsd (rev 0)
+++ trunk/exsynchws/patch.xsd 2011-02-17 21:15:44 UTC (rev 1)
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE schema [
+ <!ENTITY ncname "\i\c*">
+ <!ENTITY qname "(&ncname;:)?&ncname;">
+ <!ENTITY aname "@&qname;">
+ <!ENTITY pos "\[\d+\]">
+ <!ENTITY attr "\[&aname;='(.)*'\]|\[&aname;="(.)*"\]">
+ <!ENTITY valueq "\[(&qname;|\.)="(.)*"\]">
+ <!ENTITY value "\[(&qname;|\.)='(.)*'\]|&valueq;">
+ <!ENTITY cond "&attr;|&value;|&pos;">
+ <!ENTITY step "(&qname;|\*)(&cond;)*">
+ <!ENTITY piq "processing-instruction\(("&ncname;")\)">
+ <!ENTITY pi "processing-instruction\(('&ncname;')?\)|&piq;">
+ <!ENTITY id "id\(('&ncname;')?\)|id\(("&ncname;")?\)">
+ <!ENTITY com "comment\(\)">
+ <!ENTITY text "text\(\)">
+ <!ENTITY nspa "namespace::&ncname;">
+ <!ENTITY cnodes "(&text;(&pos;)?)|(&com;(&pos;)?)|((π)(&pos;)?)">
+ <!ENTITY child "&cnodes;|&step;">
+ <!ENTITY last "(&child;|&aname;|&nspa;)">
+ ]>
+<!-- This is the schema for the XML patch operations defined in RFC 5261 as
+ modified for xcalendar updates and according to appropriate conventions.
+
+ As this is intended for use in a SOAP environment the xs:any for the new or
+ replacement value is going to be a problem.
+
+ For icalendar patching we can restrict the value to be an icalendar element.
+
+ We select the outer vcalendar is we wish to add a component
+
+ We select a component if we wish to add a property or a component to that
+ component or if we wish to delete that component
+
+ We select a property to change it's parameters or it's value or delete it. The
+ value can be a parameter to add, a new value for the property or nothing to delete
+
+ We select a parameter to delete it or change its value. The value is a value-type
+ element
+
+-->
+
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:xcal="urn:ietf:params:xml:ns:icalendar-2.0"
+ xmlns="urn:ietf:params:xml:ns:pidf-diff"
+ targetNamespace="urn:ietf:params:xml:ns:pidf-diff"
+ elementFormDefault="qualified">
+
+ <xs:import schemaLocation="../schemas/icalendar/iCalendar.xsd"
+ namespace="urn:ietf:params:xml:ns:icalendar-2.0" />
+
+ <xs:simpleType name="XpathType">
+ <xs:restriction base="xs:string">
+ <xs:pattern
+ value="(/)?((&id;)((/&step;)*(/&last;))?|(&step;/)*(&last;))"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="XpathAddType">
+ <xs:restriction base="xs:string">
+ <xs:pattern
+ value="(/)?((&id;)((/&step;)*(/&child;))?|(&step;/)*(&child;))"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="PosType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="before"/>
+ <xs:enumeration value="after"/>
+ <xs:enumeration value="prepend"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="AddValueType">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="&aname;|&nspa;"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="BaseUpdateType" abstract="true">
+ <xs:attribute name="sel" type="XpathAddType"
+ use="required"/>
+ </xs:complexType>
+
+ <xs:complexType name="NewValueType" abstract="true">
+ <xs:complexContent mixed="false">
+ <xs:extension base="BaseUpdateType">
+ <xs:choice>
+ <xs:element name="component" type="xcal:BaseComponentType"/>
+ <xs:element name="property" type="xcal:BasePropertyType"/>
+ <xs:element name="parameter" type="xcal:BaseParameterType"/>
+ </xs:choice>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:simpleType name="WhitespaceType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="before"/>
+ <xs:enumeration value="after"/>
+ <xs:enumeration value="both"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="AddType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="NewValueType">
+ <xs:attribute name="pos" type="PosType"/>
+ <xs:attribute name="type" type="AddValueType"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ReplaceType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="NewValueType">
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="RemoveType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="BaseUpdateType">
+ <xs:attribute name="ws" type="WhitespaceType"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+</xs:schema>
+
Added: trunk/exsynchws/wsdlbindings/custom-binding.xml
===================================================================
--- trunk/exsynchws/wsdlbindings/custom-binding.xml (rev 0)
+++ trunk/exsynchws/wsdlbindings/custom-binding.xml 2011-02-17 21:15:44 UTC (rev 1)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bindings xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ wsdlLocation="../wssvc.wsdl"
+ xmlns="http://java.sun.com/xml/ns/jaxws">
+ <!-- Disable default wrapper style -->
+ <enableWrapperStyle>false</enableWrapperStyle>
+</bindings>
\ No newline at end of file
Added: trunk/exsynchws/wsdlbindings/simplebinding.xml
===================================================================
--- trunk/exsynchws/wsdlbindings/simplebinding.xml (rev 0)
+++ trunk/exsynchws/wsdlbindings/simplebinding.xml 2011-02-17 21:15:44 UTC (rev 1)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jaxb:bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
+ jaxb:version="2.0"
+ xmlns:xjc= "http://java.sun.com/xml/ns/jaxb/xjc"
+ jaxb:extensionBindingPrefixes="xjc">
+ <jaxb:globalBindings>
+ <xjc:simple />
+ </jaxb:globalBindings>
+</jaxb:bindings>
Added: trunk/exsynchws/wsmessages.xsd
===================================================================
--- trunk/exsynchws/wsmessages.xsd (rev 0)
+++ trunk/exsynchws/wsmessages.xsd 2011-02-17 21:15:44 UTC (rev 1)
@@ -0,0 +1,377 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="http://www.bedework.org/exsynch/wsmessages"
+ xmlns:xcal="urn:ietf:params:xml:ns:icalendar-2.0"
+ xmlns:p="urn:ietf:params:xml:ns:pidf-diff"
+ xmlns:perr="urn:ietf:params:xml:ns:patch-ops-error"
+ targetNamespace="http://www.bedework.org/exsynch/wsmessages"
+ elementFormDefault="qualified">
+
+ <import schemaLocation="../schemas/icalendar/iCalendar.xsd"
+ namespace="urn:ietf:params:xml:ns:icalendar-2.0" />
+
+ <!-- The schemas for RFC 5261 patch operations and errors. -->
+ <import schemaLocation="patch.xsd"
+ namespace="urn:ietf:params:xml:ns:pidf-diff" />
+ <import schemaLocation="patch-errors.xsd"
+ namespace="urn:ietf:params:xml:ns:patch-ops-error" />
+
+ <!-- Schema for messages passed from exsynch processor to the remote service. -->
+
+ <simpleType name="SynchType">
+ <annotation>
+ <documentation xml:lang="en">
+ from... synch from that end
+ both both ways - server tries to resolve conflicts
+ both...Master - Named service wins in conflicts.
+ </documentation>
+ </annotation>
+ <restriction base="string">
+ <enumeration value="fromExchange" />
+ <enumeration value="toExchange" />
+ <enumeration value="both" />
+ <enumeration value="bothExchangeMaster" />
+ <enumeration value="bothRemoteMaster" />
+ </restriction>
+ </simpleType>
+
+ <simpleType name="StatusType">
+ <restriction base="string">
+ <enumeration value="OK" />
+ <enumeration value="Already subscribed" />
+ <enumeration value="Unknown Exchange calendar" />
+ <enumeration value="Invalid token" />
+ <enumeration value="Unknown subscription" />
+ <enumeration value="No Access" />
+ <enumeration value="Service Stopped" />
+ <enumeration value="Error" />
+ </restriction>
+ </simpleType>
+
+ <complexType name="BaseSynchRequestType">
+ <annotation>
+ <documentation xml:lang="en">
+ Requests have this as the base type.
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="calendar-href" type="string" minOccurs="1" />
+ <element name="principal-href" type="string" minOccurs="1" />
+ <element name="synch-token" type="string" minOccurs="1" />
+ </sequence>
+ </complexType>
+
+ <complexType name="BaseSynchEntityRequestType">
+ <annotation>
+ <documentation xml:lang="en">
+ Message from remote service identifying an entity by it's UID and
+ optionally its recurrenceid.
+ </documentation>
+ </annotation>
+ <complexContent mixed="false">
+ <extension base="tns:BaseSynchRequestType">
+ <sequence >
+ <element name="uid" type="string" minOccurs="1" />
+ <element name="recurrence-id" type="string" />
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <complexType name="BaseSynchResponseType">
+ <annotation>
+ <documentation xml:lang="en">
+ Responses have this as the base type.
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="subscribe-status" type="tns:StatusType" />
+ </sequence>
+ </complexType>
+
+ <!-- *********************************************************************
+ Remote system to syncher
+ subscribe: set up a new subscription for a principal to a calendar
+ unsubscribe: remove a new subscription for a principal to a calendar
+ ********************************************************************* -->
+
+ <complexType name="SubscribeRequestType">
+ <annotation>
+ <documentation xml:lang="en">
+ Message from remote service requesting new subscription.
+ token
+ Sent in initial startup request
+ principal-href
+ Principal requesting the subscription.
+ synch-token
+ Passed back for operations on the calendar
+ exchange-user
+ Userid for exchange
+ exchange-encpw
+ Encoded password for exchange
+ </documentation>
+ </annotation>
+ <complexContent mixed="false">
+ <extension base="tns:BaseSynchRequestType">
+ <sequence >
+ <element name="token" type="string" />
+ <element name="exchange-folder-id" type="string" />
+ <element name="exchange-uri" type="string" />
+ <element name="synch-type" type="tns:SynchType" />
+ <element name="exchange-user" type="string" />
+ <element name="exchange-encpw" type="string" />
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <element name="subscribe" type="tns:SubscribeRequestType" />
+
+ <complexType name="SubscribeResponseType">
+ <annotation>
+ <documentation xml:lang="en">
+ Response to message from remote service requesting new subscription.
+ </documentation>
+ </annotation>
+ <complexContent mixed="false">
+ <extension base="tns:BaseSynchResponseType">
+ <sequence >
+ <element name="subscription-id" type="string" />
+ <element minOccurs="0" name="message" type="string" />
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <element name="subscribe-response" type="tns:SubscribeResponseType" />
+
+ <complexType name="UnsubscribeRequestType">
+ <annotation>
+ <documentation xml:lang="en">
+ Message from remote service unsubscribing.
+ </documentation>
+ </annotation>
+ <complexContent mixed="false">
+ <extension base="tns:BaseSynchRequestType">
+ <sequence >
+ <element name="subscription-id" type="string" />
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <element name="unsubscribe" type="tns:UnsubscribeRequestType" />
+
+ <complexType name="UnsubscribeResponseType">
+ <annotation>
+ <documentation xml:lang="en">
+ Response to message from remote service requesting unsubscription.
+ </documentation>
+ </annotation>
+ <complexContent mixed="false">
+ <extension base="tns:BaseSynchResponseType">
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <element name="unsubscribe-response" type="tns:UnsubscribeResponseType" />
+
+ <!-- *********************************************************************
+ Syncher to Remote system
+ start-service-notification; sent to (re)initialise the service
+ get-sycnch-info: return info used to synch
+ fetch: fetch one or more calendar items
+ add: add a new calendar item
+ update: update a calendar item
+ delete: delete a calendar item
+ ********************************************************************* -->
+
+ <complexType name="StartServiceNotificationType">
+ <annotation>
+ <documentation xml:lang="en">
+ (Re)initialize the service
+ subscribe-url: callback url for notifications and subscribe requests
+ token: random token for subscribe requests. If token is unchanged this
+ is just a keep alive ping
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="subscribe-url" type="string" />
+ <element name="token" type="string" />
+ </sequence>
+ </complexType>
+
+ <element name="start-service-notification"
+ type="tns:StartServiceNotificationType" />
+
+ <complexType name="StartServiceResponseType">
+ <annotation>
+ <documentation xml:lang="en">
+ Respond to the ping
+ token: sent in initial request
+ status: OK
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="token" type="string" />
+ <element name="status" type="tns:StatusType" />
+ </sequence>
+ </complexType>
+
+ <element name="start-service-response" type="tns:StartServiceResponseType" />
+
+ <complexType name="GetSynchInfoType">
+ <annotation>
+ <documentation xml:lang="en">
+ Message to remote service requesting synchronization info.
+ </documentation>
+ </annotation>
+ <complexContent mixed="false">
+ <extension base="tns:BaseSynchRequestType"/>
+ </complexContent>
+ </complexType>
+
+ <element name="get-sycnch-info" type="tns:GetSynchInfoType" />
+
+ <complexType name="SynchInfoType">
+ <sequence>
+ <element name="uid" type="string" />
+ <element name="exchange-lastmod" type="string" />
+ </sequence>
+ </complexType>
+
+ <complexType name="SynchInfoResponseType">
+ <annotation>
+ <documentation xml:lang="en">
+ Response to message to remote service requesting synchronization info.
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="calendar-href" type="string" />
+ <element name="synch-info-responses">
+ <complexType>
+ <sequence>
+ <element maxOccurs="unbounded" name="synch-info"
+ type="tns:SynchInfoType" />
+ </sequence>
+ </complexType>
+ </element>
+ </sequence>
+ </complexType>
+
+ <element name="synch-info-response" type="tns:SynchInfoResponseType" />
+
+ <!-- ============================ add-item =============================== -->
+
+ <complexType name="AddItemType">
+ <annotation>
+ <documentation xml:lang="en">
+ Message to add a calendar item.
+ </documentation>
+ </annotation>
+ <complexContent mixed="false">
+ <extension base="tns:BaseSynchEntityRequestType">
+ <sequence>
+ <element name="icalendar" type="xcal:IcalendarType" />
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <element name="add-item" type="tns:AddItemType" />
+
+ <complexType name="AddItemResponseType">
+ <annotation>
+ <documentation xml:lang="en">
+ Response to message to add an item.
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="status" type="tns:StatusType" />
+ <element name="message" type="string" />
+ </sequence>
+ </complexType>
+
+ <element name="add-item-response" type="tns:AddItemResponseType" />
+
+ <!-- ============================ add-item =============================== -->
+
+ <complexType name="FetchItemType">
+ <annotation>
+ <documentation xml:lang="en">
+ Message to fetch a calendar item.
+ </documentation>
+ </annotation>
+ <complexContent mixed="false">
+ <extension base="tns:BaseSynchEntityRequestType"/>
+ </complexContent>
+ </complexType>
+
+ <element name="fetch-item" type="tns:FetchItemType" />
+
+ <complexType name="FetchItemResponseType">
+ <annotation>
+ <documentation xml:lang="en">
+ Response to message to fetch an item.
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="icalendar" type="xcal:IcalendarType" />
+ <element name="status" type="tns:StatusType" />
+ <element name="message" type="string" />
+ </sequence>
+ </complexType>
+
+ <element name="fetch-item-response" type="tns:FetchItemResponseType" />
+
+ <!-- ========================== update-item ============================== -->
+
+ <element name="baseUpdate" type="p:BaseUpdateType" />
+
+ <complexType name="ArrayOfUpdates">
+ <sequence>
+ <element ref="tns:baseUpdate" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+
+ <element name="add" type="p:AddType"
+ substitutionGroup="tns:baseUpdate"/>
+
+ <element name="replace" type="p:ReplaceType"
+ substitutionGroup="tns:baseUpdate"/>
+
+ <element name="remove" type="p:RemoveType"
+ substitutionGroup="tns:baseUpdate"/>
+
+ <complexType name="UpdateItemType">
+ <annotation>
+ <documentation xml:lang="en">
+ Message to update a calendar item.
+ </documentation>
+ </annotation>
+ <complexContent mixed="false">
+ <extension base="tns:BaseSynchEntityRequestType">
+ <sequence>
+ <element name="updates" type="tns:ArrayOfUpdates" />
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <element name="update-item" type="tns:UpdateItemType" />
+
+ <complexType name="UpdateItemResponseType">
+ <annotation>
+ <documentation xml:lang="en">
+ Response to message to update an item.
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="status" type="tns:StatusType" />
+ <element ref="perr:patch-ops-error" />
+ <element name="message" type="string" />
+ </sequence>
+ </complexType>
+
+ <element name="update-item-response" type="tns:UpdateItemResponseType" />
+</schema>
Added: trunk/exsynchws/wssvc.wsdl
===================================================================
--- trunk/exsynchws/wssvc.wsdl (rev 0)
+++ trunk/exsynchws/wssvc.wsdl 2011-02-17 21:15:44 UTC (rev 1)
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions xmlns:tns="http://www.bedework.org/exsynch/wsmessages"
+ xmlns:s="http://www.w3.org/2001/XMLSchema"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ targetNamespace="http://www.bedework.org/exsynch/wsmessages"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+ <wsdl:types>
+ <s:schema>
+ <s:import schemaLocation="wsmessages.xsd"
+ namespace="http://www.bedework.org/exsynch/wsmessages" />
+ </s:schema>
+ </wsdl:types>
+
+ <!-- ====================== startServiceNotification ===================== -->
+
+ <wsdl:message name="StartServiceIn">
+ <wsdl:part name="request" element="tns:start-service-notification" />
+ </wsdl:message>
+
+ <wsdl:message name="StartServiceOut">
+ <wsdl:part name="response" element="tns:start-service-response" />
+ </wsdl:message>
+
+ <!-- ============================ getSynchInfo =========================== -->
+
+ <wsdl:message name="GetSynchInfoIn">
+ <wsdl:part name="request" element="tns:get-sycnch-info" />
+ </wsdl:message>
+
+ <wsdl:message name="GetSynchInfoOut">
+ <wsdl:part name="response" element="tns:synch-info-response" />
+ </wsdl:message>
+
+ <!-- ============================= addItem =============================== -->
+
+ <wsdl:message name="AddItemIn">
+ <wsdl:part name="addItemRequest" element="tns:add-item" />
+ </wsdl:message>
+
+ <wsdl:message name="AddItemOut">
+ <wsdl:part name="addItemResponse" element="tns:add-item-response" />
+ </wsdl:message>
+
+ <!-- ============================= fetchItem =============================== -->
+
+ <wsdl:message name="FetchItemIn">
+ <wsdl:part name="fetchItemRequest" element="tns:fetch-item" />
+ </wsdl:message>
+
+ <wsdl:message name="FetchItemOut">
+ <wsdl:part name="fetchItemResponse" element="tns:fetch-item-response" />
+ </wsdl:message>
+
+ <!-- ============================= UpdateItem =============================== -->
+
+ <wsdl:message name="UpdateItemIn">
+ <wsdl:part name="request" element="tns:update-item" />
+ </wsdl:message>
+
+ <wsdl:message name="UpdateItemOut">
+ <wsdl:part name="response" element="tns:update-item-response" />
+ </wsdl:message>
+
+ <!-- ============================== port ================================= -->
+
+ <wsdl:portType name="ExsynchRemoteServicePortType">
+ <wsdl:operation name="NotifyRemoteService">
+ <wsdl:input message="tns:StartServiceIn" />
+ <wsdl:output message="tns:StartServiceOut" />
+ </wsdl:operation>
+
+ <wsdl:operation name="GetSynchInfo">
+ <wsdl:input message="tns:GetSynchInfoIn" />
+ <wsdl:output message="tns:GetSynchInfoOut" />
+ </wsdl:operation>
+
+ <wsdl:operation name="AddItem">
+ <wsdl:input message="tns:AddItemIn" />
+ <wsdl:output message="tns:AddItemOut" />
+ </wsdl:operation>
+
+ <wsdl:operation name="FetchItem">
+ <wsdl:input message="tns:FetchItemIn" />
+ <wsdl:output message="tns:FetchItemOut" />
+ </wsdl:operation>
+
+ <wsdl:operation name="UpdateItem">
+ <wsdl:input message="tns:UpdateItemIn" />
+ <wsdl:output message="tns:UpdateItemOut" />
+ </wsdl:operation>
+ </wsdl:portType>
+
+ <!-- ============================ binding ================================ -->
+
+ <wsdl:binding name="ExsynchRemoteServiceBinding"
+ type="tns:ExsynchRemoteServicePortType">
+ <wsdl:documentation>
+ <wsi:Claim conformsTo="http://ws-i.org/profiles/basic/1.0"
+ xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/" />
+ </wsdl:documentation>
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
+
+ <wsdl:operation name="NotifyRemoteService">
+ <soap:operation soapAction="http://www.bedework.org/exsynch/wsmessages/notify-remote-service" />
+ <wsdl:input>
+ <soap:body use="literal" parts="request" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" parts="response" />
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="GetSynchInfo">
+ <soap:operation soapAction="http://www.bedework.org/exsynch/wsmessages/get-synch-info" />
+ <wsdl:input>
+ <soap:body use="literal" parts="request" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" parts="response" />
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="AddItem">
+ <soap:operation soapAction="http://www.bedework.org/exsynch/wsmessages/add-item" />
+ <wsdl:input>
+ <soap:body use="literal" parts="addItemRequest" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" parts="addItemResponse" />
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="FetchItem">
+ <soap:operation soapAction="http://www.bedework.org/exsynch/wsmessages/fetch-item" />
+ <wsdl:input>
+ <soap:body use="literal" parts="fetchItemRequest" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" parts="fetchItemResponse" />
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="UpdateItem">
+ <soap:operation soapAction="http://www.bedework.org/exsynch/wsmessages/update-item" />
+ <wsdl:input>
+ <soap:body use="literal" parts="request" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" parts="response" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+
+ <wsdl:service name="ExsynchRemoteService">
+ <wsdl:port name="ExsynchRSPort" binding="tns:ExsynchRemoteServiceBinding">
+ <soap:address location="http://localhost:8080/pubcaldav/exsynchws/"></soap:address>
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
\ No newline at end of file
Added: trunk/schemas/icalendar/iCalendar-availability-extension.xsd
===================================================================
--- trunk/schemas/icalendar/iCalendar-availability-extension.xsd (rev 0)
+++ trunk/schemas/icalendar/iCalendar-availability-extension.xsd 2011-02-17 21:15:44 UTC (rev 1)
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:xcal="urn:ietf:params:xml:ns:icalendar-2.0"
+ targetNamespace="urn:ietf:params:xml:ns:icalendar-2.0"
+ elementFormDefault="qualified">
+
+<!-- This schema extension defines properties and components for the availability
+ components defined in draft-daboo-calendar-availability -->
+
+ <!-- ===================== Value-types ================================ -->
+ <xs:include schemaLocation="iCalendar-valtypes.xsd" />
+
+ <!-- ===================== Components ================================= -->
+ <xs:include schemaLocation="iCalendar.xsd" />
+
+ <!-- ===================== Properties ================================= -->
+ <xs:include schemaLocation="iCalendar-props.xsd" />
+
+ <!-- =====================================================================
+ Calendar Properties
+ ===================================================================== -->
+
+ <!-- The BUSYTYPE property is used to specify the default busy time
+ type. The values correspond to those used by the "FBTYPE"
+ parameter used on a "FREEBUSY" property, with the exception that
+ the "FREE" value is not used. If not specified on a component
+ that allows this property, the default is "BUSY-UNAVAILABLE".
+
+ busytypevalue = "BUSY" / "BUSY-UNAVAILABLE" /
+ "BUSY-TENTATIVE" / iana-token / x-name
+ ; Default is "BUSY-UNAVAILABLE"
+
+ -->
+
+ <xs:simpleType name="BusytypeValueType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="BUSY"/>
+ <xs:enumeration value="BUSY-UNAVAILABLE"/> <!-- default -->
+ <xs:enumeration value="BUSY-TENTATIVE"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="BusytypePropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- =====================================================================
+ Calendar Components
+ ===================================================================== -->
+
+ <xs:complexType name="VavailabilityType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BaseComponentType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="vavailability" type="xcal:VavailabilityType"
+ substitutionGroup="xcal:baseComponent"/>
+
+ <xs:complexType name="AvailableType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BaseComponentType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="available" type="xcal:AvailableType"
+ substitutionGroup="xcal:baseComponent"/>
+</xs:schema>
Added: trunk/schemas/icalendar/iCalendar-bw-extensions.xsd
===================================================================
--- trunk/schemas/icalendar/iCalendar-bw-extensions.xsd (rev 0)
+++ trunk/schemas/icalendar/iCalendar-bw-extensions.xsd 2011-02-17 21:15:44 UTC (rev 1)
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--Bedework extensions to icalendar -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:xcal="urn:ietf:params:xml:ns:icalendar-2.0"
+ targetNamespace="urn:ietf:params:xml:ns:icalendar-2.0"
+ elementFormDefault="qualified">
+
+ <xs:include schemaLocation="iCalendar-valtypes.xsd" />
+
+ <!-- ===================== Properties ================================= -->
+ <xs:include schemaLocation="iCalendar-props.xsd" />
+
+ <!-- =====================================================================
+ 3.2 Property parameter definitions
+ ===================================================================== -->
+
+ <!-- Bedework x-parameters -->
+ <xs:element name="x-bedework-uid" type="xcal:XBedeworkUidParamType"
+ substitutionGroup="xcal:baseParameter" />
+
+ <xs:complexType name="XBedeworkUidParamType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextParameterType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- =====================================================================
+ 3.7 Calendar Properties
+ ===================================================================== -->
+
+ <xs:element name="x-bedework-cost"
+ type="xcal:XBedeworkCostPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="x-bedework-exsynch-endtzid"
+ type="xcal:XBedeworkExsynchEndtzidPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="x-bedework-exsynch-lastmod"
+ type="xcal:XBedeworkExsynchLastmodPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="x-bedework-exsynch-organizer"
+ type="xcal:OrganizerPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="x-bedework-exsynch-starttzid"
+ type="xcal:XBedeworkExsynchStarttzidPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:complexType name="XBedeworkCostPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="XBedeworkExsynchEndtzidPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="XBedeworkExsynchLastmodPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="XBedeworkExsynchStarttzidPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+</xs:schema>
Added: trunk/schemas/icalendar/iCalendar-link-extension.xsd
===================================================================
--- trunk/schemas/icalendar/iCalendar-link-extension.xsd (rev 0)
+++ trunk/schemas/icalendar/iCalendar-link-extension.xsd 2011-02-17 21:15:44 UTC (rev 1)
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:xcal="urn:ietf:params:xml:ns:icalendar-2.0"
+ targetNamespace="urn:ietf:params:xml:ns:icalendar-2.0"
+ elementFormDefault="qualified">
+
+<!--Definition for the LINK extension property for icalendar -->
+
+ <xs:include schemaLocation="iCalendar-valtypes.xsd" />
+
+ <!-- ===================== Properties ================================= -->
+ <xs:include schemaLocation="iCalendar-params.xsd" />
+
+ <!-- ===================== Properties ================================= -->
+ <xs:include schemaLocation="iCalendar-props.xsd" />
+
+ <!-- =====================================================================
+ 3.2 Property parameter definitions
+ ===================================================================== -->
+
+ <!-- REL defines the type of relationship and may be a predefined value as
+ below or a URI which is globally unique and understood within the context
+ of its use.
+
+ The standard relation types are:
+ "PARENT" ; Parent relationship - Default
+ "CHILD" ; Child relationship
+ "SIBLING" ; Sibling relationship
+ -->
+
+ <xs:element name="rel" type="xcal:TextParameterType"
+ substitutionGroup="xcal:baseParameter" />
+
+ <!-- =====================================================================
+ 3.7 Calendar Properties
+ ===================================================================== -->
+
+ <xs:complexType name="LinkPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BasePropertyType">
+ <xs:choice>
+ <xs:element ref="xcal:uri"/>
+ <xs:element name="uid" type="xs:string"/>
+ <xs:element name="reference" type="xs:string"/>
+ </xs:choice>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="link"
+ type="xcal:LinkPropType"
+ substitutionGroup="xcal:baseProperty" />
+</xs:schema>
Added: trunk/schemas/icalendar/iCalendar-ms-extensions.xsd
===================================================================
--- trunk/schemas/icalendar/iCalendar-ms-extensions.xsd (rev 0)
+++ trunk/schemas/icalendar/iCalendar-ms-extensions.xsd 2011-02-17 21:15:44 UTC (rev 1)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--Bedework extensions to icalendar -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:xcal="urn:ietf:params:xml:ns:icalendar-2.0"
+ targetNamespace="urn:ietf:params:xml:ns:icalendar-2.0"
+ elementFormDefault="qualified">
+
+ <!-- =====================================================================
+ 3.7 Calendar Properties
+ ===================================================================== -->
+
+ <!-- ===================== Properties ================================= -->
+ <xs:include schemaLocation="iCalendar-props.xsd" />
+
+ <xs:element name="x-microsoft-cdo-busystatus"
+ type="xcal:XMicrosoftCdoBusystatusPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="x-microsoft-cdo-intendedstatus"
+ type="xcal:XMicrosoftCdoIntendedstatusPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:complexType name="XMicrosoftCdoBusystatusPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="XMicrosoftCdoIntendedstatusPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+</xs:schema>
Added: trunk/schemas/icalendar/iCalendar-params.xsd
===================================================================
--- trunk/schemas/icalendar/iCalendar-params.xsd (rev 0)
+++ trunk/schemas/icalendar/iCalendar-params.xsd 2011-02-17 21:15:44 UTC (rev 1)
@@ -0,0 +1,395 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- edited with XMLSpy v2010 rel. 3 sp1 (x64) (http://www.altova.com) by Toby Considine (TC9) -->
+<!--non-normative, to support development of WS-Calendar - 2010/10/30. Refer to rfc5545 and xCal in the IETF for normative description-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:xcal="urn:ietf:params:xml:ns:icalendar-2.0"
+ targetNamespace="urn:ietf:params:xml:ns:icalendar-2.0"
+ elementFormDefault="qualified">
+
+ <xs:include schemaLocation="iCalendar-valtypes.xsd" />
+
+ <!-- =====================================================================
+ 3.2 Property parameter definitions
+ ===================================================================== -->
+
+ <xs:complexType name="BaseParameterType" abstract="true" >
+ </xs:complexType>
+
+ <xs:element name="baseParameter" type="xcal:BaseParameterType" />
+
+ <xs:complexType name="ArrayOfParameters">
+ <xs:sequence>
+ <xs:element ref="xcal:baseParameter" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- =====================================================================
+ Define all the standard properties. By using a substitutionGroup we
+ make it easy to extend the list of parameters. As an example see
+ the parameters defined in iCalendar-caldavsched-extensions.xsd
+ ===================================================================== -->
+
+ <xs:element name="altrep" type="xcal:AltrepParamType"
+ substitutionGroup="xcal:baseParameter" />
+ <xs:element name="cn" type="xcal:CnParamType"
+ substitutionGroup="xcal:baseParameter" />
+ <xs:element name="cutype" type="xcal:CutypeParamType"
+ substitutionGroup="xcal:baseParameter" />
+ <xs:element name="delegated-from" type="xcal:DelegatedFromParamType"
+ substitutionGroup="xcal:baseParameter" />
+ <xs:element name="delegated-to" type="xcal:DelegatedToParamType"
+ substitutionGroup="xcal:baseParameter" />
+ <xs:element name="dir" type="xcal:DirParamType"
+ substitutionGroup="xcal:baseParameter" />
+ <xs:element name="encoding" type="xcal:EncodingParamType"
+ substitutionGroup="xcal:baseParameter" />
+ <xs:element name="fmttype" type="xcal:FmttypeParamType"
+ substitutionGroup="xcal:baseParameter" />
+ <xs:element name="fbtype" type="xcal:FbtypeParamType"
+ substitutionGroup="xcal:baseParameter" />
+ <xs:element name="language" type="xcal:LanguageParamType"
+ substitutionGroup="xcal:baseParameter" />
+ <xs:element name="member" type="xcal:MemberParamType"
+ substitutionGroup="xcal:baseParameter" />
+ <xs:element name="partstat" type="xcal:PartstatParamType"
+ substitutionGroup="xcal:baseParameter" />
+ <xs:element name="range" type="xcal:RangeParamType"
+ substitutionGroup="xcal:baseParameter" />
+ <xs:element name="related" type="xcal:RelatedParamType"
+ substitutionGroup="xcal:baseParameter" />
+ <xs:element name="reltype" type="xcal:ReltypeParamType"
+ substitutionGroup="xcal:baseParameter" />
+ <xs:element name="role" type="xcal:RoleParamType"
+ substitutionGroup="xcal:baseParameter" />
+ <xs:element name="rsvp" type="xcal:RsvpParamType"
+ substitutionGroup="xcal:baseParameter" />
+ <xs:element name="sent-by" type="xcal:SentByParamType"
+ substitutionGroup="xcal:baseParameter" />
+ <xs:element name="tzid" type="xcal:TzidParamType"
+ substitutionGroup="xcal:baseParameter" />
+
+
+ <!-- Scheduling parameters for attendee or organizer -->
+ <xs:element name="schedule-agent" type="xcal:ScheduleAgentParamType"
+ substitutionGroup="xcal:baseParameter" />
+ <xs:element name="schedule-force-send" type="xcal:ScheduleForceSendParamType"
+ substitutionGroup="xcal:baseParameter" />
+ <xs:element name="schedule-status" type="xcal:ScheduleStatusParamType"
+ substitutionGroup="xcal:baseParameter" />
+
+ <!-- Parameters that take a simple text value -->
+ <xs:complexType name="TextParameterType" >
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BaseParameterType">
+ <xs:sequence>
+ <xs:element ref="xcal:text" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Parameters that take a uri value -->
+ <xs:complexType name="UriParameterType" >
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BaseParameterType">
+ <xs:sequence>
+ <xs:element ref="xcal:uri"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="CalAddressListParamType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BaseParameterType">
+ <xs:sequence>
+ <xs:element ref="xcal:cal-address" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="CalAddressParamType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BaseParameterType">
+ <xs:sequence>
+ <xs:element ref="xcal:cal-address" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.2.1 Alternate Text Representation -->
+ <xs:complexType name="AltrepParamType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:UriParameterType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.2.2 Common Name -->
+ <xs:complexType name="CnParamType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextParameterType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.2.3 Calendar User Type -->
+ <xs:simpleType name="CutypeValueType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="INDIVIDUAL"/>
+ <xs:enumeration value="GROUP"/>
+ <xs:enumeration value="RESOURCE"/>
+ <xs:enumeration value="ROOM"/>
+ <xs:enumeration value="UNKNOWN"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="CutypeParamType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextParameterType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.2.4 Delegators -->
+ <xs:complexType name="DelegatedFromParamType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:CalAddressListParamType">
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.2.5 Delegatees -->
+ <xs:complexType name="DelegatedToParamType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:CalAddressListParamType">
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.2.6 Directory Entry Reference -->
+ <xs:complexType name="DirParamType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:UriParameterType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.2.7 Inline Encoding -->
+
+ <xs:simpleType name="EncodingValueType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="8BIT"/>
+ <xs:enumeration value="BASE64"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="EncodingParamType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextParameterType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.2.8 Format Type -->
+ <xs:complexType name="FmttypeParamType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextParameterType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.2.9 Free/Busy Time Type -->
+ <xs:simpleType name="FbtypeValueType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="FREE"/>
+ <xs:enumeration value="BUSY"/>
+ <xs:enumeration value="BUSY-UNAVAILABLE"/>
+ <xs:enumeration value="BUSY-TENTATIVE"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="FbtypeParamType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextParameterType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.2.10 Language -->
+ <xs:complexType name="LanguageParamType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextParameterType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.2.11 Group or List Membership -->
+ <xs:complexType name="MemberParamType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:CalAddressListParamType">
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.2.12 Participation Status -->
+ <xs:simpleType name="PartstatValueType">
+ <xs:union memberTypes="xcal:TypePartstatEvent xcal:TypePartstatTodo xcal:TypePartstatJour"/>
+ </xs:simpleType>
+
+ <xs:simpleType name="TypePartstatEvent">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="NEEDS-ACTION"/>
+ <xs:enumeration value="ACCEPTED"/>
+ <xs:enumeration value="DECLINED"/>
+ <xs:enumeration value="TENTATIVE"/>
+ <xs:enumeration value="DELEGATED"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="TypePartstatTodo">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="NEEDS-ACTION"/>
+ <xs:enumeration value="ACCEPTED"/>
+ <xs:enumeration value="DECLINED"/>
+ <xs:enumeration value="TENTATIVE"/>
+ <xs:enumeration value="DELEGATED"/>
+ <xs:enumeration value="COMPLETED"/>
+ <xs:enumeration value="IN-PROCESS"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="TypePartstatJour">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="NEEDS-ACTION"/>
+ <xs:enumeration value="ACCEPTED"/>
+ <xs:enumeration value="DECLINED"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="PartstatParamType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextParameterType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.2.13 Recurrence Identifier Range -->
+ <xs:simpleType name="RangeValueType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="THISANDFUTURE"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="RangeParamType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BaseParameterType">
+ <xs:sequence>
+ <xs:element name="text" type="xcal:RangeValueType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.2.14 Alarm Trigger Relationship -->
+ <xs:simpleType name="RelatedValueType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="START"/>
+ <xs:enumeration value="END"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="RelatedParamType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextParameterType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.2.15 Relationship Type -->
+ <xs:simpleType name="ReltypeValueType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="PARENT"/>
+ <xs:enumeration value="CHILD"/>
+ <xs:enumeration value="SIBLING"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="ReltypeParamType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextParameterType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.2.16 Participation Role -->
+ <xs:simpleType name="RoleValueType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="CHAIR"/>
+ <xs:enumeration value="REQ-PARTICIPANT"/>
+ <xs:enumeration value="OPT-PARTICIPANT"/>
+ <xs:enumeration value="NON-PARTICIPANT"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="RoleParamType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextParameterType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.2.17 RSVP Expectation -->
+ <xs:simpleType name="RsvpValueType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="TRUE"/>
+ <xs:enumeration value="FALSE"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="RsvpParamType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextParameterType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.2.18 Sent By -->
+ <xs:complexType name="SentByParamType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:CalAddressParamType">
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.2.19 Time Zone Identifier -->
+ <xs:complexType name="TzidParamType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextParameterType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Scheduling parameters - Defined by CalDAV scheduling -->
+
+ <xs:simpleType name="ScheduleAgentValueType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="SERVER"/>
+ <xs:enumeration value="CLIENT"/>
+ <xs:enumeration value="NONE"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="ScheduleAgentParamType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextParameterType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:simpleType name="ScheduleForceSendValueType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="REQUEST"/>
+ <xs:enumeration value="REPLY"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="ScheduleForceSendParamType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextParameterType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ScheduleStatusParamType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextParameterType"/>
+ </xs:complexContent>
+ </xs:complexType>
+</xs:schema>
Added: trunk/schemas/icalendar/iCalendar-props.xsd
===================================================================
--- trunk/schemas/icalendar/iCalendar-props.xsd (rev 0)
+++ trunk/schemas/icalendar/iCalendar-props.xsd 2011-02-17 21:15:44 UTC (rev 1)
@@ -0,0 +1,770 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--non-normative, to support development of WS-Calendar - 2010/10/30.
+ Refer to rfc5545 and xCal in the IETF for normative description -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:xcal="urn:ietf:params:xml:ns:icalendar-2.0"
+ targetNamespace="urn:ietf:params:xml:ns:icalendar-2.0"
+ elementFormDefault="qualified">
+
+ <!-- =====================================================================
+ 3.7 Calendar Properties
+ ===================================================================== -->
+
+ <!-- ===================== Parameters ================================= -->
+ <xs:include schemaLocation="iCalendar-params.xsd" />
+
+ <!-- =====================================================================
+ 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="xcal:ArrayOfParameters"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:element name="baseProperty" type="xcal:BasePropertyType" />
+
+ <xs:complexType name="ArrayOfProperties">
+ <xs:sequence>
+ <xs:element ref="xcal:baseProperty" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- =====================================================================
+ Define all the standard properties. By using a substitutionGroup we
+ make it easy to extend the list of properties. As an example see
+ the properties defined in iCalendar-ms-extensions.xsd
+ ===================================================================== -->
+ <xs:element name="calscale" type="xcal:CalscalePropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="method" type="xcal:MethodPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="prodid" type="xcal:ProdidPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="version" type="xcal:VersionPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="attach" type="xcal:AttachPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="categories" type="xcal:CategoriesPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="class" type="xcal:ClassPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="comment" type="xcal:CommentPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="description" type="xcal:DescriptionPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="geo" type="xcal:GeoPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="location" type="xcal:LocationPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="percent-complete" type="xcal:PercentCompletePropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="priority" type="xcal:PriorityPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="resources" type="xcal:ResourcesPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="status" type="xcal:StatusPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="summary" type="xcal:SummaryPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="completed" type="xcal:CompletedPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="dtend" type="xcal:DtendPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="dtstart" type="xcal:DtstartPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="due" type="xcal:DuePropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="duration" type="xcal:DurationPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="freebusy" type="xcal:FreebusyPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="transp" type="xcal:TranspPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <!-- Comment out tzid for the moment. It has the same name as the parameter
+ and this is causing me some issues
+ <xs:element name="tzid" type="xcal:TzidPropType"
+ substitutionGroup="xcal:baseProperty" /> -->
+ <xs:element name="tzname" type="xcal:TznamePropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="tzoffsetfrom" type="xcal:TzoffsetfromPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="tzoffsetto" type="xcal:TzoffsettoPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="tzurl" type="xcal:TzurlPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="attendee" type="xcal:AttendeePropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="contact" type="xcal:ContactPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="organizer" type="xcal:OrganizerPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="recurrence-id" type="xcal:RecurrenceIdPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="url" type="xcal:UrlPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="uid" type="xcal:UidPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="exdate" type="xcal:ExdatePropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="rdate" type="xcal:RdatePropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="related-to" type="xcal:RelatedToPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="exrule" type="xcal:ExrulePropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="rrule" type="xcal:RrulePropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="action" type="xcal:ActionPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="repeat" type="xcal:RepeatPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="trigger" type="xcal:TriggerPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="created" type="xcal:CreatedPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="dtstamp" type="xcal:DtstampPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="last-modified" type="xcal:LastModifiedPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="sequence" type="xcal:SequencePropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="request-status" type="xcal:RequestStatusPropType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <!-- Properties that take a simple text value -->
+ <xs:complexType name="TextPropertyType" >
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BasePropertyType">
+ <xs:sequence>
+ <xs:element ref="xcal:text" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="TextListPropertyType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BasePropertyType">
+ <xs:sequence>
+ <xs:element ref="xcal:text" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Properties that take a calendar address value -->
+ <xs:complexType name="CalAddressPropertyType" >
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BasePropertyType">
+ <xs:sequence>
+ <xs:element ref="xcal:cal-address" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Properties that take a simple integer value -->
+ <xs:complexType name="IntegerPropertyType" >
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BasePropertyType">
+ <xs:sequence>
+ <xs:element ref="xcal:integer"/>
+ </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="xcal:BasePropertyType">
+ <xs:sequence>
+ <xs:element ref="xcal:uri"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Properties that take a utc offset value -->
+ <xs:complexType name="UtcOffsetPropertyType" >
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BasePropertyType">
+ <xs:sequence>
+ <xs:element ref="xcal:utc-offset"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Properties that take a date-time value -->
+ <xs:complexType name="DatetimePropertyType" >
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BasePropertyType">
+ <xs:sequence>
+ <xs:element ref="xcal:date-time"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Properties that take a utc-date-time value -->
+ <xs:complexType name="UtcDatetimePropertyType" >
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BasePropertyType">
+ <xs:sequence>
+ <xs:element ref="xcal:utc-date-time"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Properties that take a date or date-time value -->
+ <xs:complexType name="DateDatetimePropertyType" >
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BasePropertyType">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element ref="xcal:date-time"/>
+ <xs:element ref="xcal:date"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Properties that take a recurrence value -->
+ <xs:complexType name="RecurPropertyType" >
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BasePropertyType">
+ <xs:sequence>
+ <xs:element name="recur" type="xcal:RecurType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.7.1 Calendar Scale -->
+ <xs:simpleType name="CalscaleValueType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="GREGORIAN"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="CalscalePropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BasePropertyType">
+ <xs:sequence>
+ <xs:element name="text" type="xcal:CalscaleValueType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.7.2 Method -->
+ <xs:complexType name="MethodPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.7.3 Product Identifier -->
+ <xs:complexType name="ProdidPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.7.4 Version -->
+ <xs:complexType name="VersionPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8 Component Properties -->
+ <!-- 3.8.1 Descriptive Component Properties -->
+ <!-- 3.8.1.1 Attachment -->
+ <xs:complexType name="AttachPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BasePropertyType">
+ <xs:choice>
+ <xs:element ref="xcal:uri"/>
+ <xs:element ref="xcal:binary"/>
+ </xs:choice>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.1.2 Categories -->
+ <xs:complexType name="CategoriesPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextListPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.1.3 Classification -->
+ <!-- Would like something lie this but not extensible
+ <xs:simpleType name="ClassValueType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="PUBLIC"/>
+ <xs:enumeration value="PRIVATE"/>
+ <xs:enumeration value="CONFIDENTIAL"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="ClassPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BasePropertyType">
+ <xs:sequence>
+ <xs:element name="text" type="xcal:ClassValueType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ -->
+ <xs:simpleType name="ClassValueType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="PUBLIC"/>
+ <xs:enumeration value="PRIVATE"/>
+ <xs:enumeration value="CONFIDENTIAL"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="ClassPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.1.4 Comment -->
+ <xs:complexType name="CommentPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.1.5 Description -->
+ <xs:complexType name="DescriptionPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.1.6 Geographic Position -->
+ <xs:complexType name="GeoPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BasePropertyType">
+ <xs:sequence>
+ <xs:element ref="xcal:latitude"/>
+ <xs:element ref="xcal:longitude"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="latitude" type="xs:string"/>
+ <xs:element name="longitude" type="xs:string"/>
+
+ <!-- 3.8.1.7 Location -->
+ <xs:complexType name="LocationPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.1.8 Percent Complete -->
+ <xs:complexType name="PercentCompletePropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:IntegerPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.1.9 Priority -->
+ <xs:complexType name="PriorityPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:IntegerPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.1.10 Resources -->
+ <xs:complexType name="ResourcesPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextListPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.1.11 Status -->
+ <xs:simpleType name="StatusValueType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="TENTATIVE"/> <!-- event -->
+ <xs:enumeration value="CONFIRMED"/> <!-- event -->
+ <xs:enumeration value="CANCELLED"/> <!-- event, task, journal -->
+ <xs:enumeration value="NEEDS-ACTION"/> <!-- task -->
+ <xs:enumeration value="COMPLETED"/> <!-- task -->
+ <xs:enumeration value="IN-PROCESS"/> <!-- task -->
+ <xs:enumeration value="DRAFT"/> <!-- journal -->
+ <xs:enumeration value="FINAL"/> <!-- journal -->
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="StatusPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.1.12 Summary -->
+ <xs:complexType name="SummaryPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.2 Date and Time Component Properties -->
+ <!-- 3.8.2.1 Date/Time Completed -->
+ <xs:complexType name="CompletedPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:UtcDatetimePropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.2.2 Date/Time End -->
+ <xs:complexType name="DtendPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:DateDatetimePropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.2.3 Date/Time Due -->
+ <xs:complexType name="DuePropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:DateDatetimePropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.2.4 Date/Time Start -->
+ <xs:complexType name="DtstartPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:DateDatetimePropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.2.5 Duration -->
+ <xs:complexType name="DurationPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BasePropertyType">
+ <xs:sequence>
+ <xs:element name="duration" type="xs:string"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.2.6 Free/Busy Time -->
+ <xs:complexType name="FreebusyPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BasePropertyType">
+ <xs:sequence>
+ <xs:element ref="xcal:period" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.2.7 Time Transparency -->
+ <xs:simpleType name="TranspValueType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="OPAQUE"/>
+ <xs:enumeration value="TRANSPARENT"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="TranspPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.2.8 Schedules - - >
+ < ! - - 3.8.2.8.1 Scheduled-by-start - - >
+ <xs:group name="schedule-by-start-end">
+ <xs:sequence>
+ <xs:element ref="xcal:dtstart"/>
+ <xs:element ref="xcal:dtend"/>
+ </xs:sequence>
+ </xs:group>
+ < ! - - 3.8.2.8.2 Scheduled-by-end - - >
+ <xs:group name="schedule-by-end">
+ <xs:sequence>
+ <xs:group ref="xcal:property-duration"/>
+ <xs:element ref="xcal:dtend"/>
+ </xs:sequence>
+ </xs:group>
+ < ! - - 3.8.2.8.3 Scheduled-by-start - - >
+ <xs:group name="schedule-by-start">
+ <xs:sequence>
+ <xs:group ref="xcal:property-duration"/>
+ <xs:element ref="xcal:dtstart"/>
+ </xs:sequence>
+ </xs:group>
+ -->
+
+ <!-- 3.8.3 Time Zone Component Properties -->
+ <!-- 3.8.3.1 Time Zone Identifier -->
+ <xs:complexType name="TzidPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.3.2 Time Zone Name -->
+ <xs:complexType name="TznamePropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.3.3 Time Zone Offset From -->
+ <xs:complexType name="TzoffsetfromPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:UtcOffsetPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.3.4 Time Zone Offset To -->
+ <xs:complexType name="TzoffsettoPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:UtcOffsetPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.3.5 Time Zone URL -->
+ <xs:complexType name="TzurlPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:UriPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.4 Relationship Component Properties -->
+ <!-- 3.8.4.1 Attendee -->
+ <xs:complexType name="AttendeePropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:CalAddressPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.4.2 Contact -->
+ <xs:complexType name="ContactPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.4.3 Organizer -->
+ <xs:complexType name="OrganizerPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:CalAddressPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.4.4 Recurrence ID -->
+ <xs:complexType name="RecurrenceIdPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:DateDatetimePropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.4.5 Related-To -->
+ <!-- 3.8.4.6 Uniform Resource Locator -->
+ <xs:complexType name="UrlPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:UriPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.4.7 Unique Identifier -->
+ <xs:complexType name="UidPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.5 Recurrence Component Properties -->
+ <!-- 3.8.5.1 Exception Date/Times -->
+ <xs:complexType name="ExdatePropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:DateDatetimePropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.5.2 Recurrence Date/Times -->
+ <xs:complexType name="RdatePropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:DateDatetimePropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="RelatedToPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.5.3 Recurrence Rule -->
+ <xs:complexType name="RrulePropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:RecurPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- x.x.x.x Deprecated ExRule -->
+ <xs:complexType name="ExrulePropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:RecurPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.6 Alarm Component Properties -->
+ <!-- 3.8.6.1 Action -->
+ <xs:simpleType name="ActionValueType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="AUDIO"/>
+ <xs:enumeration value="DISPLAY"/>
+ <xs:enumeration value="EMAIL"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="ActionPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.6.2 Repeat Count -->
+ <xs:complexType name="RepeatPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:IntegerPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.6.3 Trigger -->
+ <xs:complexType name="TriggerPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BasePropertyType">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="duration" type="xs:string"/>
+ <xs:element ref="xcal:date-time"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.7 Change Management Component Properties -->
+ <!-- 3.8.7.1 Date/Time Created -->
+ <xs:complexType name="CreatedPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:UtcDatetimePropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.7.2 Date/Time Stamp -->
+ <xs:complexType name="DtstampPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:UtcDatetimePropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.7.3 Last Modified -->
+ <xs:complexType name="LastModifiedPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:UtcDatetimePropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.7.4 Sequence Number -->
+ <xs:complexType name="SequencePropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:IntegerPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.8.8 Miscellaneous Component Properties -->
+ <!-- 3.8.8.3 Request Status -->
+ <xs:complexType name="RequestStatusPropType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BasePropertyType">
+ <xs:sequence>
+ <xs:element name="code" type="xs:string" />
+ <xs:element name="description" type="xs:string"/>
+ <xs:element name="extdata" type="xs:string"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!--
+ statcode = 1*DIGIT 1*2("." 1*DIGIT)
+ ;Hierarchical, numeric return status code
+
+ statdesc = text
+ ;Textual status description
+
+ extdata = text
+ ;Textual exception data. For example, the offending property
+ ;name and value or complete property line.
+ -->
+</xs:schema>
Added: trunk/schemas/icalendar/iCalendar-valtypes.xsd
===================================================================
--- trunk/schemas/icalendar/iCalendar-valtypes.xsd (rev 0)
+++ trunk/schemas/icalendar/iCalendar-valtypes.xsd 2011-02-17 21:15:44 UTC (rev 1)
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- edited with XMLSpy v2010 rel. 3 sp1 (x64) (http://www.altova.com) by Toby Considine (TC9) -->
+<!--non-normative, to support development of WS-Calendar - 2010/10/30. Refer to rfc5545 and xCal in the IETF for normative description-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:xcal="urn:ietf:params:xml:ns:icalendar-2.0"
+ targetNamespace="urn:ietf:params:xml:ns:icalendar-2.0"
+ elementFormDefault="qualified">
+
+ <!-- =====================================================================
+ 3.3 Property Value Data Types
+ ===================================================================== -->
+
+ <!-- 3.3.1 BINARY -->
+ <xs:element name="binary" type="xs:string"/>
+
+ <!-- 3.3.2 BOOLEAN -->
+ <xs:element name="boolean" type="xcal:BooleanType" />
+
+ <xs:simpleType name="BooleanType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="TRUE"/>
+ <xs:enumeration value="FALSE"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- 3.3.3 CAL-ADDRESS -->
+ <xs:simpleType name="CalAddressType">
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+
+ <xs:element name="cal-address" type="xcal:CalAddressType" />
+
+ <!-- 3.3.4 DATE -->
+ <xs:element name="date" type="xs:string"/>
+
+ <!-- 3.3.5 DATE-TIME -->
+ <xs:element name="date-time" type="xs:string"/>
+
+ <!-- Patterns should allow us to restrict this
+ e.g. 19980119T070000Z
+ -->
+ <xs:element name="utc-date-time" type="xs:string"/>
+
+ <!-- 3.3.6 DURATION
+ <xs:element name="duration" type="xs:string"/>-->
+
+ <!-- 3.3.7 FLOAT -->
+ <xs:element name="float" type="xs:string"/>
+
+ <!-- 3.3.8 INTEGER -->
+ <xs:element name="integer" type="xs:string"/>
+
+ <!-- 3.3.9 PERIOD -->
+ <xs:element name="period" type="xs:string"/>
+
+ <!-- 3.3.10 RECUR -->
+ <xs:complexType name="RecurType">
+ <xs:sequence>
+ <xs:element name="freq" type="xcal:FreqRecurType"/>
+ <xs:sequence>
+ <xs:choice>
+ <xs:element ref="xcal:until" />
+ <xs:element ref="xcal:count" />
+ </xs:choice>
+ </xs:sequence>
+ <xs:element name="interval" type="xs:string"/>
+ <xs:element name="bysecond" type="xs:string" maxOccurs="unbounded"/>
+ <xs:element name="byminute" type="xs:string" maxOccurs="unbounded"/>
+ <xs:element name="byhour" type="xs:string" maxOccurs="unbounded"/>
+ <xs:element name="byday" type="xs:string" maxOccurs="unbounded"/>
+ <xs:element name="byyearday" type="xs:string" maxOccurs="unbounded"/>
+ <xs:element name="bymonthday" type="xcal:BymonthdayRecurType" maxOccurs="unbounded"/>
+ <xs:element name="byweekno" type="xs:string" maxOccurs="unbounded"/>
+ <xs:element name="bymonth" type="xcal:BymonthRecurType" maxOccurs="unbounded"/>
+ <xs:element name="bysetpos" type="xs:integer" maxOccurs="unbounded"/>
+ <xs:element name="wkst" type="xcal:WeekdayRecurType" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="FreqRecurType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="SECONDLY"/>
+ <xs:enumeration value="MINUTELY"/>
+ <xs:enumeration value="HOURLY"/>
+ <xs:enumeration value="DAILY"/>
+ <xs:enumeration value="WEEKLY"/>
+ <xs:enumeration value="MONTHLY"/>
+ <xs:enumeration value="YEARLY"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:element name="until" type="xcal:UntilRecurType"/>
+
+ <xs:complexType name="UntilRecurType" >
+ <xs:sequence>
+ <xs:choice>
+ <xs:element ref="xcal:date" />
+ <xs:element ref="xcal:date-time" />
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:element name="count" type="xs:integer"/>
+
+ <xs:simpleType name="WeekdayRecurType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="SU"/>
+ <xs:enumeration value="MO"/>
+ <xs:enumeration value="TU"/>
+ <xs:enumeration value="WE"/>
+ <xs:enumeration value="TH"/>
+ <xs:enumeration value="FR"/>
+ <xs:enumeration value="SA"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="BymonthdayRecurType">
+ <xs:restriction base="xs:integer">
+ <xs:minInclusive value="-31"/>
+ <xs:maxInclusive value="31"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="BymonthRecurType">
+ <xs:restriction base="xs:integer">
+ <xs:minInclusive value="1"/>
+ <xs:maxInclusive value="12"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- 3.3.11 TEXT -->
+ <xs:element name="text" type="xs:string"/>
+
+ <!-- 3.3.12 TIME -->
+ <xs:element name="time" type="xs:string"/>
+
+ <!-- 3.3.13 URI -->
+ <xs:simpleType name="UriType">
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+
+ <xs:element name="uri" type="xcal:UriType" />
+
+ <!-- 3.3.14 UTC-OFFSET -->
+ <xs:simpleType name="UtcOffsetType">
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+
+ <xs:element name="utc-offset" type="xcal:UtcOffsetType" />
+
+</xs:schema>
Added: trunk/schemas/icalendar/iCalendar-wscal-extensions.xsd
===================================================================
--- trunk/schemas/icalendar/iCalendar-wscal-extensions.xsd (rev 0)
+++ trunk/schemas/icalendar/iCalendar-wscal-extensions.xsd 2011-02-17 21:15:44 UTC (rev 1)
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--OASIS WS-Calendar extensions to icalendar -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:xcal="urn:ietf:params:xml:ns:icalendar-2.0"
+ targetNamespace="urn:ietf:params:xml:ns:icalendar-2.0"
+ elementFormDefault="qualified">
+
+ <xs:include schemaLocation="iCalendar-valtypes.xsd" />
+
+ <!-- ===================== Properties ================================= -->
+ <xs:include schemaLocation="iCalendar-props.xsd" />
+
+ <!-- ===================== Components ================================= -->
+ <xs:include schemaLocation="iCalendar.xsd" />
+
+ <!-- =====================================================================
+ 3.2 Property parameter definitions
+ ===================================================================== -->
+
+ <!-- Parameters that take a duration value -->
+ <xs:complexType name="DurationParameterType" >
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BaseParameterType">
+ <xs:sequence>
+ <xs:element ref="xcal:duration"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Gap is used in the LINK property -->
+ <xs:element name="gap" type="xcal:DurationParameterType"
+ substitutionGroup="xcal:baseParameter" />
+
+ <!-- The following are used with attach -->
+
+ <xs:element name="startbeforetolerance" type="xcal:DurationParameterType"
+ substitutionGroup="xcal:baseParameter" />
+
+ <xs:element name="startaftertolerance" type="xcal:DurationParameterType"
+ substitutionGroup="xcal:baseParameter" />
+
+ <xs:element name="endtbeforetolerance" type="xcal:DurationParameterType"
+ substitutionGroup="xcal:baseParameter" />
+
+ <xs:element name="endaftertolerance" type="xcal:DurationParameterType"
+ substitutionGroup="xcal:baseParameter" />
+
+ <xs:element name="durationlongtolerance" type="xcal:DurationParameterType"
+ substitutionGroup="xcal:baseParameter" />
+
+ <xs:element name="durationshorttolerance" type="xcal:DurationParameterType"
+ substitutionGroup="xcal:baseParameter" />
+
+ <xs:element name="granularity" type="xcal:DurationParameterType"
+ substitutionGroup="xcal:baseParameter" />
+
+ <!-- =====================================================================
+ 3.4 Calendar Components
+ ===================================================================== -->
+
+ <xs:complexType name="WsCalendarGluonType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BaseComponentType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="gluon" type="xcal:WsCalendarGluonType"
+ substitutionGroup="xcal:baseComponent"/>
+
+ <xs:complexType name="WsCalendarIntervalType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BaseComponentType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="interval" type="xcal:WsCalendarIntervalType"
+ substitutionGroup="xcal:baseComponent"/>
+
+ <!-- =====================================================================
+ 3.7 Calendar Properties
+ ===================================================================== -->
+
+ <xs:complexType name="WscalendarTypeType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:TextPropertyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="WscalendarAttachType">
+ <xs:annotation>
+ <xs:documentation>types the content of the xCal attach element</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BasePropertyType">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="artifact" block="">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:documentation>The artifact is here for use in extending by other specifications, to to allow attributes from other namespaces to be added to ws-calendar-based schemas.</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:restriction base="xs:anyType">
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:restriction>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element ref="xcal:uri"/>
+ <xs:element ref="xcal:text"/>
+ </xs:choice>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="x-wscalendar-attach"
+ type="xcal:WscalendarAttachType"
+ substitutionGroup="xcal:baseProperty" />
+
+ <xs:element name="x-wscalendar-type"
+ type="xcal:WscalendarTypeType"
+ substitutionGroup="xcal:baseProperty" />
+</xs:schema>
Added: trunk/schemas/icalendar/iCalendar.xsd
===================================================================
--- trunk/schemas/icalendar/iCalendar.xsd (rev 0)
+++ trunk/schemas/icalendar/iCalendar.xsd 2011-02-17 21:15:44 UTC (rev 1)
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- edited with XMLSpy v2010 rel. 3 sp1 (x64) (http://www.altova.com) by Toby Considine (TC9) -->
+<!--non-normative, to support development of WS-Calendar - 2010/10/30. Refer to rfc5545 and xCal in the IETF for normative description-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:xcal="urn:ietf:params:xml:ns:icalendar-2.0"
+ targetNamespace="urn:ietf:params:xml:ns:icalendar-2.0"
+ elementFormDefault="qualified">
+
+ <!-- ===================== Standard Extensions ======================= -->
+ <xs:include schemaLocation="iCalendar-link-extension.xsd" />
+
+ <!-- ===================== Proprietary Extensions ======================= -->
+ <xs:include schemaLocation="iCalendar-bw-extensions.xsd" />
+ <xs:include schemaLocation="iCalendar-ms-extensions.xsd" />
+ <xs:include schemaLocation="iCalendar-wscal-extensions.xsd" />
+
+ <!-- =====================================================================
+ 3.4 Calendar Components
+ ===================================================================== -->
+
+ <xs:include schemaLocation="iCalendar-props.xsd" />
+
+ <xs:complexType name="BaseComponentType" abstract="true" >
+ <xs:sequence>
+ <xs:element name="properties" type="xcal:ArrayOfProperties"/>
+ <xs:element name="components" type="xcal:ArrayOfComponents"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:element name="baseComponent" type="xcal:BaseComponentType" />
+
+ <xs:complexType name="ArrayOfComponents">
+ <xs:sequence>
+ <xs:element ref="xcal:baseComponent" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:element name="vevent" type="xcal:VeventType"
+ substitutionGroup="xcal:baseComponent"/>
+
+ <xs:element name="vtodo" type="xcal:VtodoType"
+ substitutionGroup="xcal:baseComponent"/>
+
+ <xs:element name="vjournal" type="xcal:VjournalType"
+ substitutionGroup="xcal:baseComponent"/>
+
+ <xs:element name="vfreebusy" type="xcal:VfreebusyType"
+ substitutionGroup="xcal:baseComponent"/>
+
+ <xs:element name="vtimezone" type="xcal:VtimezoneType"
+ substitutionGroup="xcal:baseComponent"/>
+
+ <xs:element name="standard" type="xcal:StandardType"
+ substitutionGroup="xcal:baseComponent"/>
+
+ <xs:element name="daylight" type="xcal:DaylightType"
+ substitutionGroup="xcal:baseComponent"/>
+
+ <xs:element name="valarm" type="xcal:ValarmType"
+ substitutionGroup="xcal:baseComponent"/>
+
+ <!-- 3.4 iCalendar Stream -->
+ <xs:complexType name="IcalendarType">
+ <xs:sequence>
+ <xs:element name="vcalendar" type="xcal:VcalendarType" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- 3.6 Calendar Components -->
+ <xs:complexType name="VcalendarType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BaseComponentType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.6.1 Event Component -->
+ <xs:complexType name="VeventType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BaseComponentType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.6.2 To-do Component -->
+ <xs:complexType name="VtodoType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BaseComponentType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.6.3 Journal Component -->
+ <xs:complexType name="VjournalType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BaseComponentType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.6.4 Free/Busy Component -->
+ <xs:complexType name="VfreebusyType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BaseComponentType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.6.5 timezone -->
+ <xs:complexType name="VtimezoneType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BaseComponentType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="StandardType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BaseComponentType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="DaylightType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BaseComponentType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- 3.6.6 Alarm Component -->
+ <xs:complexType name="ValarmType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="xcal:BaseComponentType"/>
+ </xs:complexContent>
+ </xs:complexType>
+</xs:schema>
Added: trunk/schemas/tzsvr/tzservice.xsd
===================================================================
--- trunk/schemas/tzsvr/tzservice.xsd (rev 0)
+++ trunk/schemas/tzsvr/tzservice.xsd 2011-02-17 21:15:44 UTC (rev 1)
@@ -0,0 +1,271 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="urn:ietf:params:xml:ns:timezone-service"
+ 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" />
+
+ <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.
+ </documentation>
+ </annotation>
+ <restriction base="string"/>
+ </simpleType>
+
+ <simpleType name="DtstampType">
+ <annotation>
+ <documentation xml:lang="en">
+ Provides the UTC date and time when a substantive change was made to the
+ timezone data.
+ </documentation>
+ </annotation>
+ <restriction base="string"/>
+ </simpleType>
+
+ <simpleType name="LastmodifiedType">
+ <annotation>
+ <documentation xml:lang="en">
+ Provides the UTC date and time that the timezone data was last modified.
+ </documentation>
+ </annotation>
+ <restriction base="string"/>
+ </simpleType>
+
+ <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.
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="string">
+ <attribute ref="xml:lang" />
+ </extension>
+ </simpleContent>
+ </complexType>
+
+ <simpleType name="OnsetType">
+ <annotation>
+ <documentation xml:lang="en">
+ The onset element defines the local time at which the observance takes effect.
+ </documentation>
+ </annotation>
+ <restriction base="string"/>
+ </simpleType>
+
+ <simpleType name="TzidType">
+ <annotation>
+ <documentation xml:lang="en">
+ The text value is the identifier of the timezone being referred to.
+ </documentation>
+ </annotation>
+ <restriction base="string"/>
+ </simpleType>
+
+ <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.
+ </documentation>
+ </annotation>
+ <restriction base="string"/>
+ </simpleType>
+
+ <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.
+ </documentation>
+ </annotation>
+ <restriction base="string"/>
+ </simpleType>
+
+ <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.
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="string">
+ <attribute ref="xml:lang" />
+ </extension>
+ </simpleContent>
+ </complexType>
+
+ <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.
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="name" type="string" />
+ <element name="required" type="boolean" />
+ <element name="multi" type="boolean" />
+ <element name="value" type="string" />
+ <element name="description" type="string" />
+ </sequence>
+ </complexType>
+
+ <complexType name="CapabilitiesOperationType">
+ <annotation>
+ <documentation xml:lang="en">
+ 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"
+ maxOccurs="unbounded" />
+ </sequence>
+ </complexType>
+
+ <complexType name="CapabilitiesType">
+ <annotation>
+ <documentation xml:lang="en">
+ 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"
+ maxOccurs="unbounded" />
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <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.
+ </documentation>
+ </annotation>
+ <sequence >
+ <element name="tzid" type="tns:TzidType" minOccurs="1" />
+ <element name="last-modified" type="tns:LastmodifiedType" />
+ <element name="local-name" type="tns:LocalNameType"
+ maxOccurs="unbounded" />
+ <element name="alias" type="tns:AliasType"
+ maxOccurs="unbounded" />
+ </sequence>
+ </complexType>
+
+ <complexType name="TimezoneListType">
+ <annotation>
+ <documentation xml:lang="en">
+ 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"
+ maxOccurs="unbounded" />
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <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.
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="name" type="string" />
+ <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" />
+ </sequence>
+ </complexType>
+
+ <complexType name="TzdataType">
+ <annotation>
+ <documentation xml:lang="en">
+ This element specifies expanded timezone data for the range specified in
+ a request.
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="tzid" type="tns:TzidType" minOccurs="1" />
+ <element name="calscale" type="tns:CalscaleType" />
+ <element name="observance" type="tns:ObservanceType"
+ maxOccurs="unbounded" />
+ </sequence>
+ </complexType>
+
+ <complexType name="TimezonesType">
+ <annotation>
+ <documentation xml:lang="en">
+ 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="tzdata" type="tns:TzdataType"
+ maxOccurs="unbounded" />
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <element name="timezones" type="tns:TimezonesType" />
+</schema>
Added: trunk/schemas/xml.xsd
===================================================================
--- trunk/schemas/xml.xsd (rev 0)
+++ trunk/schemas/xml.xsd 2011-02-17 21:15:44 UTC (rev 1)
@@ -0,0 +1,134 @@
+<?xml version='1.0'?>
+<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace" xmlns:xs="http://www.w3.org/2001/XMLSchema" xml:lang="en">
+
+ <xs:annotation>
+ <xs:documentation>
+ See http://www.w3.org/XML/1998/namespace.html and
+ http://www.w3.org/TR/REC-xml for information about this namespace.
+
+ This schema document describes the XML namespace, in a form
+ suitable for import by other schema documents.
+
+ Note that local names in this namespace are intended to be defined
+ only by the World Wide Web Consortium or its subgroups. The
+ following names are currently defined in this namespace and should
+ not be used with conflicting semantics by any Working Group,
+ specification, or document instance:
+
+ base (as an attribute name): denotes an attribute whose value
+ provides a URI to be used as the base for interpreting any
+ relative URIs in the scope of the element on which it
+ appears; its value is inherited. This name is reserved
+ by virtue of its definition in the XML Base specification.
+
+ id (as an attribute name): denotes an attribute whose value
+ should be interpreted as if declared to be of type ID.
+ The xml:id specification is not yet a W3C Recommendation,
+ but this attribute is included here to facilitate experimentation
+ with the mechanisms it proposes. Note that it is _not_ included
+ in the specialAttrs attribute group.
+
+ lang (as an attribute name): denotes an attribute whose value
+ is a language code for the natural language of the content of
+ any element; its value is inherited. This name is reserved
+ by virtue of its definition in the XML specification.
+
+ space (as an attribute name): denotes an attribute whose
+ value is a keyword indicating what whitespace processing
+ discipline is intended for the content of the element; its
+ value is inherited. This name is reserved by virtue of its
+ definition in the XML specification.
+
+ Father (in any context at all): denotes Jon Bosak, the chair of
+ the original XML Working Group. This name is reserved by
+ the following decision of the W3C XML Plenary and
+ XML Coordination groups:
+
+ In appreciation for his vision, leadership and dedication
+ the W3C XML Plenary on this 10th day of February, 2000
+ reserves for Jon Bosak in perpetuity the XML name
+ xml:Father
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:annotation>
+ <xs:documentation>This schema defines attributes and an attribute group
+ suitable for use by
+ schemas wishing to allow xml:base, xml:lang or xml:space attributes
+ on elements they define.
+
+ To enable this, such a schema must import this schema
+ for the XML namespace, e.g. as follows:
+ <schema . . .>
+ . . .
+ <import namespace="http://www.w3.org/XML/1998/namespace"
+ schemaLocation="http://www.w3.org/2001/03/xml.xsd"/>
+
+ Subsequently, qualified reference to any of the attributes
+ or the group defined below will have the desired effect, e.g.
+
+ <type . . .>
+ . . .
+ <attributeGroup ref="xml:specialAttrs"/>
+
+ will define a type which will schema-validate an instance
+ element with any of those attributes</xs:documentation>
+ </xs:annotation>
+
+ <xs:annotation>
+ <xs:documentation>In keeping with the XML Schema WG's standard versioning
+ policy, this schema document will persist at
+ http://www.w3.org/2004/10/xml.xsd.
+ At the date of issue it can also be found at
+ http://www.w3.org/2001/xml.xsd.
+ The schema document at that URI may however change in the future,
+ in order to remain compatible with the latest version of XML Schema
+ itself, or with the XML namespace itself. In other words, if the XML
+ Schema or XML namespaces change, the version of this document at
+ http://www.w3.org/2001/xml.xsd will change
+ accordingly; the version at
+ http://www.w3.org/2004/10/xml.xsd will not change.
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:attribute name="lang" type="xs:language">
+ <xs:annotation>
+ <xs:documentation>Attempting to install the relevant ISO 2- and 3-letter
+ codes as the enumerated possible values is probably never
+ going to be a realistic possibility. See
+ RFC 3066 at http://www.ietf.org/rfc/rfc3066.txt and the IANA registry
+ at http://www.iana.org/assignments/lang-tag-apps.htm for
+ further information.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+
+ <xs:attribute name="space">
+ <xs:simpleType>
+ <xs:restriction base="xs:NCName">
+ <xs:enumeration value="default"/>
+ <xs:enumeration value="preserve"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+
+ <xs:attribute name="base" type="xs:anyURI">
+ <xs:annotation>
+ <xs:documentation>See http://www.w3.org/TR/xmlbase/ for
+ information about this attribute.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+
+ <xs:attribute name="id" type="xs:ID">
+ <xs:annotation>
+ <xs:documentation>See http://www.w3.org/TR/xml-id/ for
+ information about this attribute.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+
+ <xs:attributeGroup name="specialAttrs">
+ <xs:attribute ref="xml:base"/>
+ <xs:attribute ref="xml:lang"/>
+ <xs:attribute ref="xml:space"/>
+ </xs:attributeGroup>
+
+</xs:schema>
Added: trunk/xjcbindings/simplebinding.xml
===================================================================
--- trunk/xjcbindings/simplebinding.xml (rev 0)
+++ trunk/xjcbindings/simplebinding.xml 2011-02-17 21:15:44 UTC (rev 1)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jaxb:bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
+ jaxb:version="2.0"
+ xmlns:xjc= "http://java.sun.com/xml/ns/jaxb/xjc"
+ jaxb:extensionBindingPrefixes="xjc">
+ <jaxb:globalBindings>
+ <xjc:simple />
+ </jaxb:globalBindings>
+</jaxb:bindings>
More information about the Bedework-commit
mailing list