[Bedework-commit] bwxml r52 - in trunk: . .settings caldav
calws-soap schemas/caldav schemas/icalendar schemas/tzsvr
svnadmin at bedework.org
svnadmin at bedework.org
Fri Jul 15 16:04:53 EDT 2011
Author: douglm
Date: 2011-07-15 16:04:51 -0400 (Fri, 15 Jul 2011)
New Revision: 52
Added:
trunk/.settings/
trunk/.settings/org.eclipse.wst.validation.prefs
trunk/calws-soap/calquery-dav.xsd
trunk/calws-soap/wserrors.xsd
Modified:
trunk/.classpath
trunk/.project
trunk/build.properties
trunk/build.xml
trunk/caldav/
trunk/calws-soap/wsmessages.xsd
trunk/schemas/caldav/caldav.xsd
trunk/schemas/icalendar/iCalendar-props.xsd
trunk/schemas/tzsvr/tzservice.xsd
Log:
Many changes to CalWs-SOAP
A few changes to the build to better handle changes to dependent projects
Added CalWs-SOAP spec to docs for the moment
Modified: trunk/.classpath
===================================================================
--- trunk/.classpath 2011-06-28 03:05:46 UTC (rev 51)
+++ trunk/.classpath 2011-07-15 20:04:51 UTC (rev 52)
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="exsynchws/gensrc/src"/>
+ <classpathentry kind="src" path="appleServer/gensrc/src"/>
+ <classpathentry excluding="ietf/params/xml/ns/icalendar_2/" kind="src" path="caldav/gensrc/src"/>
<classpathentry kind="src" path="catdav/gensrc/src"/>
<classpathentry excluding="ietf/params/xml/ns/icalendar_2/|org/oasis_open/docs/ns/xri/" kind="src" path="calws-soap/gensrc/src"/>
<classpathentry kind="src" path="exchangews/gensrc/src"/>
Modified: trunk/.project
===================================================================
--- trunk/.project 2011-06-28 03:05:46 UTC (rev 51)
+++ trunk/.project 2011-07-15 20:04:51 UTC (rev 52)
@@ -10,6 +10,11 @@
<arguments>
</arguments>
</buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.validation.validationbuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
Added: trunk/.settings/org.eclipse.wst.validation.prefs
===================================================================
--- trunk/.settings/org.eclipse.wst.validation.prefs (rev 0)
+++ trunk/.settings/org.eclipse.wst.validation.prefs 2011-07-15 20:04:51 UTC (rev 52)
@@ -0,0 +1,18 @@
+#Tue Jun 28 11:36:40 EDT 2011
+DELEGATES_PREFERENCE=delegateValidatorList
+USER_BUILD_PREFERENCE=enabledBuildValidatorList
+USER_MANUAL_PREFERENCE=enabledManualValidatorList
+USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.300.v201104190230
+eclipse.preferences.version=1
+override=true
+suspend=false
+vals/org.eclipse.jst.jsp.core.JSPBatchValidator/global=FF01
+vals/org.eclipse.jst.jsp.core.JSPContentValidator/global=FF01
+vals/org.eclipse.jst.jsp.core.TLDValidator/global=FF01
+vals/org.eclipse.wst.dtd.core.dtdDTDValidator/global=FF01
+vals/org.eclipse.wst.html.ui.HTMLValidator/global=FF01
+vals/org.eclipse.wst.wsdl.validation.wsdl/global=FF02158org.eclipse.wst.wsdl.validation.internal.eclipse.Validator
+vals/org.eclipse.wst.xml.core.xml/global=FF03
+vals/org.eclipse.wst.xsd.core.xsd/global=TF02162org.eclipse.wst.xsd.core.internal.validation.eclipse.Validator
+vals/org.eclipse.wst.xsl.core.xsl/global=FF02
+vf.version=3
Modified: trunk/build.properties
===================================================================
--- trunk/build.properties 2011-06-28 03:05:46 UTC (rev 51)
+++ trunk/build.properties 2011-07-15 20:04:51 UTC (rev 52)
@@ -16,6 +16,7 @@
org.bedework.module.vcardschema.jar=bw-vcardschema
org.bedework.module.icalschema.jar=bw-icalschema
org.bedework.module.catschema.jar=bw-catschema
+org.bedework.module.caldavschema.jar=bw-caldavschema
org.bedework.module.catdavschema.jar=bw-catdavschema
org.bedework.module.calws-soapschema.jar=bw-calws-soapschema
Modified: trunk/build.xml
===================================================================
--- trunk/build.xml 2011-06-28 03:05:46 UTC (rev 51)
+++ trunk/build.xml 2011-07-15 20:04:51 UTC (rev 52)
@@ -67,6 +67,9 @@
<property name="org.bedework.category.base"
location="${project.home}/category" />
+ <property name="org.bedework.caldav.base"
+ location="${project.home}/caldav" />
+
<property name="org.bedework.catdav.base"
location="${project.home}/catdav" />
@@ -100,6 +103,9 @@
<property name="category.jar"
location="${dist.home}/${org.bedework.module.catschema.jar}-${project.version}.jar" />
+ <property name="caldavschema.jar"
+ location="${dist.home}/${org.bedework.module.caldavschema.jar}-${project.version}.jar" />
+
<property name="catdavschema.jar"
location="${dist.home}/${org.bedework.module.catdavschema.jar}-${project.version}.jar" />
@@ -182,6 +188,13 @@
bindingsdir="${project.home}/xjcbindings"
/>
+ <!-- caldav -->
+ <xjc schema="${org.bedework.schemas.base}/caldav/caldav.xsd"
+ module-base="${org.bedework.caldav.base}/gensrc"
+ jar-file="${caldavschema.jar}"
+ bindingsdir="${project.home}/xjcbindings"
+ />
+
<!-- catdav -->
<xjc schema="${org.bedework.schemas.base}/catdav/catdav.xsd"
module-base="${org.bedework.catdav.base}/gensrc"
Property changes on: trunk/caldav
___________________________________________________________________
Name: svn:ignore
+ gensrc
Added: trunk/calws-soap/calquery-dav.xsd
===================================================================
--- trunk/calws-soap/calquery-dav.xsd (rev 0)
+++ trunk/calws-soap/calquery-dav.xsd 2011-07-15 20:04:51 UTC (rev 52)
@@ -0,0 +1,546 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="http://docs.oasis-open.org/ns/wscal/calws-soap"
+ xmlns:xcal="urn:ietf:params:xml:ns:icalendar-2.0"
+ targetNamespace="http://docs.oasis-open.org/ns/wscal/calws-soap"
+ elementFormDefault="qualified">
+ <!-- =============================================================
+ This query is functionally equivalent to the CalDAV XML query.
+
+ It differs in that date/time and boolean attributes must all be XML
+ schema types.
+
+ Note: this schema is incomplete. It currently only defines
+ elements required for CalWS.
+ ============================================================= -->
+
+ <import schemaLocation="../schemas/icalendar/iCalendar.xsd"
+ namespace="urn:ietf:params:xml:ns:icalendar-2.0" />
+<!--
+ <complexType name="UTCTimeRangeType">
+ <annotation>
+ <documentation xml:lang="en">
+ A type used by a number of filter elements.
+ </documentation>
+ </annotation>
+ <attribute name="start" type="xcal:UTCDateTimeType" />
+ <attribute name="end" type="xcal:UTCDateTimeType" />
+ </complexType>
+ -->
+ <complexType name="AllcompType">
+ <annotation>
+ <documentation xml:lang="en">
+ The allcomp XML element can be used when the
+ client wants all types of components returned by a calendaring
+ REPORT request.
+ </documentation>
+ </annotation>
+ </complexType>
+
+ <element name="allcomp" type="tns:AllcompType" />
+<!--
+ <complexType name="AllpropType">
+ <annotation>
+ <documentation xml:lang="en">
+ The allprop XML element can be used when the
+ client wants all properties of components returned by a
+ calendaring REPORT request.
+ </documentation>
+ </annotation>
+ </complexType>
+
+ <element name="allprop" type="tns:AllpropType" />
+ -->
+ <complexType name="PropType">
+ <annotation>
+ <documentation xml:lang="en">
+ The "name" attribute specifies the name of the calendar
+ property to return (e.g., ATTENDEE). The "novalue" attribute can
+ be used by clients to request that the actual value of the
+ property not be returned (if the "novalue" attribute is set to
+ "yes"). In that case, the server will return just the iCalendar
+ property name and any iCalendar parameters and a trailing ":"
+ without the subsequent value data.
+ </documentation>
+ </annotation>
+ <attribute name="name" type="string" use="required" />
+ <attribute name="novalue" type="boolean" default="false" />
+ </complexType>
+
+ <element name="prop" type="tns:PropType" />
+
+ <complexType name="CompType">
+ <annotation>
+ <documentation xml:lang="en">
+ The name value is a calendar component name (e.g., VEVENT).
+ </documentation>
+ </annotation>
+ <sequence>
+ <choice minOccurs="0">
+ <element ref="tns:allprop" />
+ <element ref="tns:prop" maxOccurs="unbounded" />
+ </choice>
+ <choice>
+ <element ref="tns:allcomp" />
+ <element ref="tns:comp" maxOccurs="unbounded" />
+ </choice>
+ </sequence>
+ <attribute name="name" type="string" use="required" />
+ </complexType>
+
+ <element name="comp" type="tns:CompType" />
+
+ <complexType name="ExpandType">
+ <annotation>
+ <documentation xml:lang="en">
+ The expand XML element specifies that for a
+ given calendaring REPORT request, the server MUST expand the
+ recurrence set into calendar components that define exactly one
+ recurrence instance, and MUST return only those whose scheduled
+ time intersect a specified time range.
+
+ The "start" attribute specifies the inclusive start of the time
+ range, and the "end" attribute specifies the non-inclusive end of
+ the time range. Both attributes are specified as date with UTC
+ time value. The value of the "end" attribute MUST be greater than
+ the value of the "start" attribute.
+
+ The server MUST use the same logic as defined for time-range
+ to determine if a recurrence instance intersects the
+ specified time range.
+
+ Recurring components, other than the initial instance, MUST
+ include a RECURRENCE-ID property indicating which instance they
+ refer to.
+
+ The returned calendar components MUST NOT use recurrence
+ properties (i.e., EXDATE, EXRULE, RDATE, and RRULE) and MUST NOT
+ have reference to or include VTIMEZONE components. Date and local
+ time with reference to time zone information MUST be converted
+ into date with UTC time.
+ </documentation>
+ </annotation>
+ <complexContent mixed="false">
+ <extension base="tns:UTCTimeRangeType"/>
+ </complexContent>
+ </complexType>
+
+ <element name="expand" type="tns:ExpandType" />
+
+ <complexType name="LimitRecurrenceSetType">
+ <annotation>
+ <documentation xml:lang="en">
+ The limit-recurrence-set XML element specifies
+ that for a given calendaring REPORT request, the server MUST
+ return, in addition to the "master component", only the
+ "overridden components" that impact a specified time range. An
+ overridden component impacts a time range if its current start and
+ end times overlap the time range, or if the original start and end
+ times - the ones that would have been used if the instance were
+ not overridden - overlap the time range.
+
+ The "start" attribute specifies the inclusive start of the time
+ range, and the "end" attribute specifies the non-inclusive end of
+ the time range. Both attributes are specified as date with UTC
+ time value. The value of the "end" attribute MUST be greater than
+ the value of the "start" attribute.
+
+ The server MUST use the same logic as defined for time-range
+ to determine if the current or original scheduled time of an
+ "overridden" recurrence instance intersects the specified time
+ range.
+
+ Overridden components that have a RANGE parameter on their
+ RECURRENCE-ID property may specify one or more instances in the
+ recurrence set, and some of those instances may fall within the
+ specified time range or may have originally fallen within the
+ specified time range prior to being overridden. If that is the
+ case, the overridden component MUST be included in the results, as
+ it has a direct impact on the interpretation of instances within
+ the specified time range.
+ </documentation>
+ </annotation>
+ <complexContent mixed="false">
+ <extension base="tns:UTCTimeRangeType"/>
+ </complexContent>
+ </complexType>
+
+ <element name="limit-recurrence-set" type="tns:LimitRecurrenceSetType" />
+
+ <complexType name="LimitFreebusySetType">
+ <annotation>
+ <documentation xml:lang="en">
+ The limit-freebusy-set XML element specifies
+ that for a given calendaring REPORT request, the server MUST only
+ return the FREEBUSY property values of a VFREEBUSY component that
+ intersects a specified time range.
+
+ The "start" attribute specifies the inclusive start of the time
+ range, and the "end" attribute specifies the non-inclusive end of
+ the time range. Both attributes are specified as "date with UTC
+ time" value. The value of the "end" attribute MUST be greater
+ than the value of the "start" attribute.
+
+ The server MUST use the same logic as defined for time-range
+ to determine if a FREEBUSY property value intersects the
+ specified time range.
+ </documentation>
+ </annotation>
+ <complexContent mixed="false">
+ <extension base="tns:UTCTimeRangeType"/>
+ </complexContent>
+ </complexType>
+
+ <element name="limit-freebusy-set" type="tns:LimitFreebusySetType" />
+
+ <group name="ExpandOrLimitType">
+ <sequence>
+ <choice minOccurs="0">
+ <element ref="tns:expand" />
+ <element ref="tns:limit-recurrence-set" />
+ </choice>
+ </sequence>
+ </group>
+
+ <complexType name="CalendarDataType">
+ <annotation>
+ <documentation xml:lang="en">
+ When nested in the supported-calendar-data element,
+ the calendar-data XML element specifies a media
+ type supported by the server for calendar object resources.
+
+ When used in a calendaring REPORT request, the calendar-data
+ XML element specifies which parts of calendar object
+ resources need to be returned in the response. If the
+ calendar-data XML element doesn't contain any comp element,
+ calendar object resources will be returned in their entirety.
+
+ Finally, when used in a calendaring REPORT response, the
+ calendar-data XML element specifies the content of a calendar
+ object resource. Given that XML parsers normalize the two-
+ character sequence CRLF (US-ASCII decimal 13 and US-ASCII decimal
+ 10) to a single LF character (US-ASCII decimal 10), the CR
+ character (US-ASCII decimal 13) MAY be omitted in calendar object
+ resources specified in the calendar-data XML element.
+ Furthermore, calendar object resources specified in the
+ calendar-data XML element MAY be invalid per their media type
+ specification if the calendar-data XML element part of the
+ calendaring REPORT request did not specify required properties
+ (e.g., UID, DTSTAMP, etc.), or specified a prop XML element
+ with the "novalue" attribute set to "yes".
+
+ NOTE: This schema type only applies to calendar-data used in
+ calendar-query requests. The response with String content is not
+ covered here as it requires mixed content.
+ </documentation>
+ </annotation>
+
+ <!-- String content content-type text/calendar requested -->
+
+ <sequence>
+ <!-- EMPTY when nested in the supported-calendar-data property
+ to specify a supported media type for calendar object
+ resources; -->
+
+ <!-- when nested in the DAV:prop XML element in a calendaring
+ REPORT request to specify which parts of calendar object
+ resources should be returned in the response;
+ -->
+ <element ref="tns:comp" minOccurs="0" />
+ <choice minOccurs="0">
+ <element ref="tns:expand" />
+ <element ref="tns:limit-recurrence-set" />
+ </choice>
+ <element ref="tns:limit-freebusy-set" minOccurs="0" />
+
+ <element ref="xcal:icalendar" minOccurs="0" />
+ <!-- When content-type application/calendar+xml requested -->
+ </sequence>
+
+ <attribute name="content-type" type="string" default="text/calendar" />
+ <attribute name="version" type="string" default="2.0" />
+ </complexType>
+
+ <element name="calendar-data" type="tns:CalendarDataType" />
+
+ <complexType name="TextMatchType">
+ <annotation>
+ <documentation xml:lang="en">
+ The text-match XML element specifies text used
+ for a substring match against the property or parameter value
+ specified in a calendaring REPORT request.
+
+ The "collation" attribute is used to select the collation that the
+ server MUST use for character string matching. In the absence of
+ this attribute, the server MUST use the "i;ascii-casemap"
+ collation.
+
+ The "negate-condition" attribute is used to indicate that this
+ test returns a match if the text matches when the attribute value
+ is set to "no", or return a match if the text does not match, if
+ the attribute value is set to "yes". For example, this can be
+ used to match components with a STATUS property not set to
+ CANCELLED.
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="string">
+ <attribute name="collation" type="string" default="i;ascii-casemap" />
+ <attribute name="negate-condition" type="boolean" default="false" />
+ </extension>
+ </simpleContent>
+ </complexType>
+
+ <element name="text-match" type="tns:TextMatchType" />
+
+ <complexType name="IsNotDefinedType">
+ <annotation>
+ <documentation xml:lang="en">
+ The is-not-defined XML element specifies that a
+ match occurs if the enclosing component, property, or parameter
+ value specified in a calendaring REPORT request does not exist in
+ the calendar data being tested.
+ </documentation>
+ </annotation>
+ </complexType>
+
+ <element name="is-not-defined" type="tns:IsNotDefinedType" />
+
+ <complexType name="TimezoneType">
+ <annotation>
+ <documentation xml:lang="en">
+ The timezone XML element specifies that for a
+ given calendaring REPORT request, the server MUST rely on the
+ specified VTIMEZONE component instead of the calendar-timezone
+ property of the calendar collection, in which the
+ calendar object resource is contained to resolve "date" values and
+ "date with local time" values (i.e., floating time) to "date with
+ UTC time" values. The server will require this information to
+ determine if a calendar component scheduled with "date" values or
+ "date with local time" values intersects a time-range
+ specified in a calendar-query REPORT.
+
+ Note: The iCalendar data embedded within the timezone XML
+ element MUST follow the standard XML character data encoding
+ rules, including use of <, >, & etc. entity encoding or
+ the use of a <![CDATA[ ... ]]> construct. In the later case, the
+ iCalendar data cannot contain the character sequence ']' + ']' + '>',
+ which is the end delimiter for the CDATA section.
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="string">
+ </extension>
+ </simpleContent>
+ </complexType>
+
+ <element name="timezone" type="tns:TimezoneType" />
+
+ <complexType name="TimezoneIdType">
+ <annotation>
+ <documentation xml:lang="en">
+ The timezone-id XML element specifies that for a
+ given calendaring REPORT request, the server MUST rely on the
+ specified timezone instead of the calendar-timezone
+ property of the calendar collection, in which the
+ calendar object resource is contained to resolve "date" values and
+ "date with local time" values (i.e., floating time) to "date with
+ UTC time" values. The server will require this information to
+ determine if a calendar component scheduled with "date" values or
+ "date with local time" values intersects a time-range
+ specified in a calendar-query REPORT.
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="string">
+ </extension>
+ </simpleContent>
+ </complexType>
+
+ <element name="timezone-id" type="tns:TimezoneIdType" />
+
+ <element name="time-range" type="tns:UTCTimeRangeType" >
+ <annotation>
+ <documentation xml:lang="en">
+ The time-range XML element specifies that for a
+ given calendaring REPORT request, the server MUST only return the
+ calendar object resources that, depending on the context, have a
+ component or property whose value intersects a specified time
+ range.
+
+ The "start" attribute specifies the inclusive start of the time
+ range, and the "end" attribute specifies the non-inclusive end of
+ the time range. Both attributes MUST be specified as "date with
+ UTC time" value. Time ranges open at one end can be specified by
+ including only one attribute; however, at least one attribute MUST
+ always be present in the time-range element. If either the
+ "start" or "end" attribute is not specified in the time-range
+ XML element, assume "-infinity" and "+infinity" as their
+ value, respectively. If both "start" and "end" are present, the
+ value of the "end" attribute MUST be greater than the value of the
+ "start" attribute.
+ </documentation>
+ </annotation>
+ </element>
+
+ <complexType name="ParamFilterType">
+ <annotation>
+ <documentation xml:lang="en">
+ The param-filter XML element specifies a query
+ targeted at a specific calendar property parameter (e.g.,
+ PARTSTAT) in the scope of the calendar property on which it is
+ defined. A calendar property parameter is said to match a
+ param-filter if:
+
+ * The param-filter XML element is empty and a parameter of
+ the type specified by the "name" attribute exists on the
+ calendar property being examined;
+
+ or:
+
+ * The param-filter XML element contains a is-not-defined
+ XML element and no parameter of the type specified by
+ the "name" attribute exists on the calendar property being
+ examined;
+ </documentation>
+ </annotation>
+ <sequence>
+ <choice minOccurs="0">
+ <element ref="tns:is-not-defined" />
+ <element ref="tns:text-match" />
+ </choice>
+ </sequence>
+ <attribute name="name" type="string" use="required" />
+ </complexType>
+
+ <element name="param-filter" type="tns:ParamFilterType" />
+
+ <complexType name="PropFilterType">
+ <annotation>
+ <documentation xml:lang="en">
+ The prop-filter XML element specifies a query
+ targeted at a specific calendar property (e.g., CATEGORIES) in the
+ scope of the enclosing calendar component. A calendar property is
+ said to match a prop-filter if:
+
+ * The prop-filter XML element is empty and a property of
+ the type specified by the "name" attribute exists in the
+ enclosing calendar component;
+
+ or:
+
+ * The prop-filter XML element contains a is-not-defined
+ XML element and no property of the type specified by
+ the "name" attribute exists in the enclosing calendar
+ component;
+
+ or:
+
+ * The prop-filter XML element contains a time-range
+ XML element and the property value overlaps the specified time
+ range, and all specified param-filter child XML elements
+ also match the targeted property;
+
+ or:
+
+ * The prop-filter XML element contains a text-match
+ XML element and the property value matches it, and all
+ specified param-filter child XML elements also match the
+ targeted property;
+ </documentation>
+ </annotation>
+ <sequence>
+ <choice minOccurs="0">
+ <element ref="tns:is-not-defined" />
+ <sequence>
+ <choice>
+ <element ref="tns:time-range" />
+ <element ref="tns:text-match" />
+ </choice>
+
+ <element ref="tns:param-filter" minOccurs="0" maxOccurs="unbounded" />
+ </sequence>
+ </choice>
+ </sequence>
+ <attribute name="name" type="string" use="required" />
+ </complexType>
+
+ <element name="prop-filter" type="tns:PropFilterType" />
+
+ <complexType name="CompFilterType">
+ <annotation>
+ <documentation xml:lang="en">
+ The comp-filter XML element specifies a query
+ targeted at the calendar object (i.e., VCALENDAR) or at a specific
+ calendar component type (e.g., VEVENT). The scope of the
+ comp-filter XML element is the calendar object when used as
+ a child of the filter XML element. The scope of the
+ comp-filter XML element is the enclosing calendar component
+ when used as a child of another comp-filter XML element. A
+ comp-filter is said to match if:
+
+ * The comp-filter XML element is empty and the calendar
+ object or calendar component type specified by the "name"
+ attribute exists in the current scope;
+
+ or:
+
+ * The comp-filter XML element contains a is-not-defined
+ XML element and the calendar object or calendar
+ component type specified by the "name" attribute does not exist
+ in the current scope;
+
+ or:
+
+ * The comp-filter XML element contains a time-range
+ XML element and at least one recurrence instance in the
+ targeted calendar component is scheduled to overlap the
+ specified time range, and all specified prop-filter and
+ comp-filter child XML elements also match the targeted
+ calendar component;
+
+ or:
+
+ * The comp-filter XML element only contains prop-filter
+ and comp-filter child XML elements that all match
+ the targeted calendar component.
+ </documentation>
+ </annotation>
+ <sequence>
+ <choice minOccurs="0">
+ <element ref="tns:is-not-defined" />
+ <sequence>
+ <element ref="tns:time-range" minOccurs="0" />
+ <element ref="tns:prop-filter" minOccurs="0" maxOccurs="unbounded" />
+ <element ref="tns:comp-filter" minOccurs="0" maxOccurs="unbounded" />
+ </sequence>
+ </choice>
+ </sequence>
+ <attribute name="name" type="string" use="required" />
+ </complexType>
+
+ <element name="comp-filter" type="tns:CompFilterType" />
+
+ <complexType name="FilterType">
+ <annotation>
+ <documentation xml:lang="en">
+ The filter XML element specifies the search
+ filter used to limit the calendar components returned by a
+ calendaring REPORT request.
+ </documentation>
+ </annotation>
+ <sequence>
+ <element ref="tns:comp-filter" />
+ </sequence>
+ </complexType>
+
+ <element name="filter" type="tns:FilterType" />
+
+ <!--
+ <!ELEMENT calendar-query ((DAV:allprop |
+ DAV:propname |
+ DAV:prop)?, filter, timezone?, timezone-id?)>
+ -->
+
+</schema>
+
Added: trunk/calws-soap/wserrors.xsd
===================================================================
--- trunk/calws-soap/wserrors.xsd (rev 0)
+++ trunk/calws-soap/wserrors.xsd 2011-07-15 20:04:51 UTC (rev 52)
@@ -0,0 +1,224 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE schema >
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="http://docs.oasis-open.org/ns/wscal/calws-soap"
+ xmlns:xcal="urn:ietf:params:xml:ns:icalendar-2.0"
+ xmlns:xrd="http://docs.oasis-open.org/ns/xri/xrd-1.0"
+ targetNamespace="http://docs.oasis-open.org/ns/wscal/calws-soap"
+ elementFormDefault="qualified">
+ <annotation>
+ <documentation xml:lang="en">
+ This schema fragment defines the error codes and types for use by the
+ CalWS SOAP web service.
+ </documentation>
+ </annotation>
+
+ <complexType name="ErrorCodeType" >
+ </complexType>
+
+ <element name="error" type="tns:ErrorCodeType" />
+
+ <complexType name="ErrorResponseType">
+ <annotation>
+ <documentation xml:lang="en">
+ Message from service indicating an error.
+ </documentation>
+ </annotation>
+ <sequence >
+ <element ref="tns:error" />
+ <element name="description" type="string" minOccurs="0" />
+ </sequence>
+ </complexType>
+
+ <!-- Error codes -->
+ <element name="targetExists" type="tns:ErrorCodeType"
+ substitutionGroup="tns:error" >
+ <annotation>
+ <documentation xml:lang="en">
+ This may not be possible...
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="targetDoesNotExist" type="tns:ErrorCodeType"
+ substitutionGroup="tns:error" >
+ <annotation>
+ <documentation xml:lang="en">
+ The supplied href does not reference an existing resource.
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="targetNotEntity" type="tns:ErrorCodeType"
+ substitutionGroup="tns:error" >
+ <annotation>
+ <documentation xml:lang="en">
+ The supplied href does not target an entity. For example a fetch item
+ was attempted against a collection.
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="notCalendarData" type="tns:ErrorCodeType"
+ substitutionGroup="tns:error" >
+ <annotation>
+ <documentation xml:lang="en">
+ The supplied entity is not calendar data.
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="invalidCalendarData" type="tns:ErrorCodeType"
+ substitutionGroup="tns:error" >
+ <annotation>
+ <documentation xml:lang="en">
+ The supplied entity does not represent valid calendar data.
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="invalidCalendarObjectResource" type="tns:ErrorCodeType"
+ substitutionGroup="tns:error" />
+ <element name="unsupportedCalendarComponent" type="tns:ErrorCodeType"
+ substitutionGroup="tns:error" >
+ <annotation>
+ <documentation xml:lang="en">
+ Indicates that the calendar collection does not accept components of the
+ type the client is attempting to store. The accepted component types can
+ be determined by examining the calendar collection properties.
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="invalidCalendarCollectionLocation" type="tns:ErrorCodeType"
+ substitutionGroup="tns:error" >
+ <annotation>
+ <documentation xml:lang="en">
+ Error indicating at least one of two conditions:
+ 1) the server does not allow the creation of calendar collections
+ at the given location in its namespace, or
+ 2) the parent collection of the Request-URI exists but cannot accept members;
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="exceedsMaxResourceSize" type="tns:ErrorCodeType"
+ substitutionGroup="tns:error" >
+ <annotation>
+ <documentation xml:lang="en">
+ Error indicating that the total size of the event or task is too large.
+ The maximum date is set by the target system and can be determined
+ from the properties.
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="beforeMinDateTime" type="tns:ErrorCodeType"
+ substitutionGroup="tns:error" >
+ <annotation>
+ <documentation xml:lang="en">
+ Error indicating that the start or end of an event or task is too
+ far into the past.
+ The minimum date is set by the target system and can be determined
+ from the properties.
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="afterMaxDateTime" type="tns:ErrorCodeType"
+ substitutionGroup="tns:error" >
+ <annotation>
+ <documentation xml:lang="en">
+ Error indicating that the start or end of an event or task is too
+ far into the future.
+ The maximum date is set by the target system and can be determined
+ from the properties.
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="tooManyInstances" type="tns:ErrorCodeType"
+ substitutionGroup="tns:error" >
+ <annotation>
+ <documentation xml:lang="en">
+ Error indicating that a recurring event has too many instances.
+ The maximum number is set by the target system and can be determined
+ from the properties.
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="tooManyAttendeesPerInstance" type="tns:ErrorCodeType"
+ substitutionGroup="tns:error" >
+ <annotation>
+ <documentation xml:lang="en">
+ Error indicating that a scheduling message has too many attendees.
+ The maximum number is set by the target system and can be determined
+ from the properties.
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="partialSuccess" type="tns:ErrorCodeType"
+ substitutionGroup="tns:error" >
+ <annotation>
+ <documentation xml:lang="en">
+ Indicates that a MultiOpType operation was partially successful. Returned
+ when the operation is marked as non-atomic and one or more sub-operations
+ failed. The entire response needs to be examined to determine which
+ operations failed.
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="mismatchedEtoken" type="tns:ErrorCodeType"
+ substitutionGroup="tns:error" >
+ <annotation>
+ <documentation xml:lang="en">
+ An update operation was attempted with an etoken value which does not
+ match that held by the service. The client must refetch the entity to
+ refresh its cached value and etoken.
+
+ Note that matching of etokens is a server responsibility. The etoken is
+ opaque to the client but probably structured to the server. Certain
+ non-conflicting updates may be allowed even if the etoken has changed.
+ </documentation>
+ </annotation>
+ </element>
+
+ <complexType name="InvalidFilterType" >
+ <complexContent mixed="false">
+ <extension base="tns:ErrorCodeType">
+ <sequence>
+ <element name="detail" type="string" />
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <element name="invalidFilter" type="tns:InvalidFilterType"
+ substitutionGroup="tns:error" />
+
+ <complexType name="UidConflictType" >
+ <complexContent mixed="false">
+ <extension base="tns:ErrorCodeType">
+ <sequence>
+ <element name="href" type="string" />
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <element name="uidConflict" type="tns:UidConflictType"
+ substitutionGroup="tns:error" >
+ <annotation>
+ <documentation xml:lang="en">
+ An attempt was made to store an entity which would result in more than
+ one entity having equal uids. The entity uid must be unique within a
+ collection. Recurring event or taks overrides have the same uid and are
+ considered part of a single entity.
+ </documentation>
+ </annotation>
+ </element>
+
+</schema>
Modified: trunk/calws-soap/wsmessages.xsd
===================================================================
--- trunk/calws-soap/wsmessages.xsd 2011-06-28 03:05:46 UTC (rev 51)
+++ trunk/calws-soap/wsmessages.xsd 2011-07-15 20:04:51 UTC (rev 52)
@@ -3,19 +3,18 @@
<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://docs.oasis-open.org/ns/wscal/calws-soap"
xmlns:xcal="urn:ietf:params:xml:ns:icalendar-2.0"
- xmlns:cdav="urn:ietf:params:xml:ns:caldav"
xmlns:xrd="http://docs.oasis-open.org/ns/xri/xrd-1.0"
targetNamespace="http://docs.oasis-open.org/ns/wscal/calws-soap"
elementFormDefault="qualified">
<import schemaLocation="../schemas/icalendar/iCalendar.xsd"
namespace="urn:ietf:params:xml:ns:icalendar-2.0" />
-
- <import schemaLocation="../schemas/caldav/caldav.xsd"
- namespace="urn:ietf:params:xml:ns:caldav" />
-
+
<import schemaLocation="../schemas/xrd/xrd-1.0-os.xsd"
namespace="http://docs.oasis-open.org/ns/xri/xrd-1.0" />
+
+ <include schemaLocation="wserrors.xsd" />
+ <include schemaLocation="calquery-dav.xsd" />
<!-- Schema for CalWS SOAP messages. -->
@@ -27,78 +26,7 @@
<enumeration value="Error" />
</restriction>
</simpleType>
-
- <complexType name="ErrorCodeType" >
- </complexType>
-
- <element name="error" type="tns:ErrorCodeType" />
- <complexType name="ErrorResponseType">
- <annotation>
- <documentation xml:lang="en">
- Message from service indicating an error.
- </documentation>
- </annotation>
- <sequence >
- <element ref="tns:error" />
- <element name="description" type="string" minOccurs="0" />
- </sequence>
- </complexType>
-
- <!-- Error codes -->
- <element name="targetExists" type="tns:ErrorCodeType"
- substitutionGroup="tns:error" />
- <element name="targetDoesNotExist" type="tns:ErrorCodeType"
- substitutionGroup="tns:error" />
- <element name="targetNotEntity" type="tns:ErrorCodeType"
- substitutionGroup="tns:error" />
- <element name="notCalendarData" type="tns:ErrorCodeType"
- substitutionGroup="tns:error" />
- <element name="invalidCalendarData" type="tns:ErrorCodeType"
- substitutionGroup="tns:error" />
- <element name="invalidCalendarObjectResource" type="tns:ErrorCodeType"
- substitutionGroup="tns:error" />
- <element name="unsupportedCalendarComponent" type="tns:ErrorCodeType"
- substitutionGroup="tns:error" />
- <element name="invalidCalendarCollectionLocation" type="tns:ErrorCodeType"
- substitutionGroup="tns:error" />
- <element name="exceedsMaxResourceSize" type="tns:ErrorCodeType"
- substitutionGroup="tns:error" />
- <element name="beforeMinDateTime" type="tns:ErrorCodeType"
- substitutionGroup="tns:error" />
- <element name="afterMaxDateTime" type="tns:ErrorCodeType"
- substitutionGroup="tns:error" />
- <element name="tooManyInstances" type="tns:ErrorCodeType"
- substitutionGroup="tns:error" />
- <element name="tooManyAttendeesPerInstance" type="tns:ErrorCodeType"
- substitutionGroup="tns:error" />
-
- <complexType name="InvalidFilterType" >
- <complexContent mixed="false">
- <extension base="tns:ErrorCodeType">
- <sequence>
- <element name="detail" type="string" />
- </sequence>
- </extension>
- </complexContent>
- </complexType>
-
- <element name="invalidFilter" type="tns:InvalidFilterType"
- substitutionGroup="tns:error" />
-
- <complexType name="UidConflictType" >
- <complexContent mixed="false">
- <extension base="tns:ErrorCodeType">
- <sequence>
- <element name="href" type="string" />
- </sequence>
- </extension>
- </complexContent>
- </complexType>
-
- <element name="uidConflict" type="tns:UidConflictType"
- substitutionGroup="tns:error" />
-
<simpleType name="DepthType">
<restriction base="string">
</restriction>
@@ -115,12 +43,15 @@
<sequence>
<element name="href" type="string" />
</sequence>
+
+ <attribute name="id" type="int" default="0" />
</complexType>
- <complexType name="BaseResponseType">
+ <complexType name="BaseResponseType" abstract="true">
<annotation>
<documentation xml:lang="en">
- Responses have this as the base type.
+ Responses have this as the base type. If the request had an id
+ attribute its value will be set as the response id attribute value.
</documentation>
</annotation>
<sequence>
@@ -128,7 +59,11 @@
<element name="message" type="string" minOccurs="0" />
<element name="errorResponse" type="tns:ErrorResponseType" minOccurs="0" />
</sequence>
+
+ <attribute name="id" type="int" default="0" />
</complexType>
+
+ <element name="baseResponse" type="tns:BaseResponseType" abstract="true"/>
<complexType name="UTCTimeRangeType">
<sequence>
@@ -161,9 +96,13 @@
Respond to the get-properties request
</documentation>
</annotation>
- <sequence>
- <element ref="xrd:XRD" />
- </sequence>
+ <complexContent mixed="false">
+ <extension base="tns:BaseResponseType">
+ <sequence>
+ <element ref="xrd:XRD" />
+ </sequence>
+ </extension>
+ </complexContent>
</complexType>
<element name="getPropertiesResponse" type="tns:GetPropertiesResponseType" />
@@ -204,15 +143,15 @@
<element name="supported-calendar-component-set"
type="tns:SupportedCalendarComponentSetType" />
- <!-- =========================== freebusyQuery =========================== -->
+ <!-- ========================== freebusyReport =========================== -->
<complexType name="FreebusyReportType">
<annotation>
<documentation xml:lang="en">
- Request a freebusy report on the targeted resource. This is NOT a
+ Request a freebusy report on the targeted principal. This is a
scheduling freebusy request which incorporates information such as
- availability etc, but a simple report of the state of the targeted
- collection(s)
+ availability etc. As such the response may depend on information not
+ visible to the caller.
</documentation>
</annotation>
<complexContent mixed="false">
@@ -220,7 +159,6 @@
<sequence>
<element name="time-range" type="tns:UTCTimeRangeType"
minOccurs="0" />
- <element name="depth" type="int" />
</sequence>
</extension>
</complexContent>
@@ -247,7 +185,8 @@
</complexContent>
</complexType>
- <element name="freebusyReportResponse" type="tns:FreebusyReportResponseType" />
+ <element name="freebusyReportResponse" type="tns:FreebusyReportResponseType"
+ substitutionGroup="tns:baseResponse" />
<!-- ======================== calendar-query ============================= -->
@@ -287,7 +226,7 @@
</choice>
</sequence>
- <attribute name="content-type" type="string" default="application/xml+calendar" />
+ <attribute name="content-type" type="string" default="application/calendar+xml" />
<attribute name="version" type="string" default="2.0" />
</complexType>
@@ -327,7 +266,7 @@
</annotation>
<sequence>
<element name="href" type="string" />
- <element name="etag" type="string" />
+ <element name="etoken" type="string" />
<element ref="tns:propstat" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
@@ -362,8 +301,8 @@
<element ref="xcal:icalendar" />
</choice>
<choice minOccurs="0">
- <element name="expand" type="cdav:ExpandType" />
- <element name="limitRecurrenceSet" type="cdav:LimitRecurrenceSetType" />
+ <element name="expand" type="tns:ExpandType" />
+ <element name="limitRecurrenceSet" type="tns:LimitRecurrenceSetType" />
</choice>
</sequence>
</extension>
@@ -380,7 +319,7 @@
<extension base="tns:CalendarQueryOrMultigetBaseType">
<sequence>
<element ref="tns:depth" />
- <element ref="cdav:filter" />
+ <element ref="tns:filter" />
</sequence>
</extension>
</complexContent>
@@ -462,12 +401,14 @@
<extension base="tns:BaseResponseType">
<sequence>
<element name="href" type="string" minOccurs="0" />
+ <element name="etoken" type="string" minOccurs="0" />
</sequence>
</extension>
</complexContent>
</complexType>
- <element name="addItemResponse" type="tns:AddItemResponseType" />
+ <element name="addItemResponse" type="tns:AddItemResponseType"
+ substitutionGroup="tns:baseResponse" />
<!-- ============================ fetchItem ============================== -->
@@ -493,13 +434,15 @@
<complexContent mixed="false">
<extension base="tns:BaseResponseType">
<sequence>
+ <element name="etoken" type="string" minOccurs="0" />
<element ref="xcal:icalendar" minOccurs="0" />
</sequence>
</extension>
</complexContent>
</complexType>
- <element name="fetchItemResponse" type="tns:FetchItemResponseType" />
+ <element name="fetchItemResponse" type="tns:FetchItemResponseType"
+ substitutionGroup="tns:baseResponse" />
<!-- ============================ deleteItem ============================== -->
@@ -527,7 +470,8 @@
</complexContent>
</complexType>
- <element name="deleteItemResponse" type="tns:DeleteItemResponseType" />
+ <element name="deleteItemResponse" type="tns:DeleteItemResponseType"
+ substitutionGroup="tns:baseResponse" />
<!-- ========================== update-item ============================== -->
<!-- This is an XML patch operations specifically for xcalendar updates.
@@ -689,11 +633,14 @@
<annotation>
<documentation xml:lang="en">
Message to update a calendar item.
+
+ The supplied etoken MUST match the etoken held by the service.
</documentation>
</annotation>
<complexContent mixed="false">
<extension base="tns:BaseRequestType">
<sequence>
+ <element name="etoken" type="string" />
<element name="select" type="tns:SelectElementType"
maxOccurs="unbounded" />
</sequence>
@@ -707,13 +654,105 @@
<annotation>
<documentation xml:lang="en">
Response to message to update an item.
+
+ The server will return an etoken value which should replace the
+ value currently held by the client.
</documentation>
</annotation>
<complexContent mixed="false">
<extension base="tns:BaseResponseType">
+ <sequence>
+ <element name="etoken" type="string" />
+ </sequence>
</extension>
</complexContent>
</complexType>
- <element name="updateItemResponse" type="tns:UpdateItemResponseType" />
+ <element name="updateItemResponse" type="tns:UpdateItemResponseType"
+ substitutionGroup="tns:baseResponse" />
+
+ <!-- =========================== multiOp =============================== -->
+
+ <complexType name="ArrayOfOperations">
+ <annotation>
+ <documentation xml:lang="en">
+ A structure containing all the operations allowed within a MultiOpType
+ </documentation>
+ </annotation>
+ <sequence>
+ <choice minOccurs="1" maxOccurs="unbounded">
+ <element ref="tns:getProperties"/>
+ <element ref="tns:freebusyReport"/>
+ <element ref="tns:calendarQuery"/>
+ <element ref="tns:calendarMultiget"/>
+ <element ref="tns:addItem"/>
+ <element ref="tns:fetchItem"/>
+ <element ref="tns:deleteItem"/>
+ <element ref="tns:updateItem"/>
+ </choice>
+ </sequence>
+ </complexType>
+
+ <complexType name="MultiOpType">
+ <annotation>
+ <documentation xml:lang="en">
+ This type is a wrapper around a number of sub-operations allowing
+ complex structures to be updated in a single, atomic operation.
+
+ Each sub-operation is one of the other possible operations, e.g.
+ updateItem, deleteItem etc.
+
+ Inclusion of a multiOp is disallowed.
+
+ The response is a MultiOpResponseType which wraps one response per
+ sub-operation. It will terminate on the first failure and all
+ updates to that point rolled back.
+
+ Inclusion of an id attribute in the sub-operation request will aid
+ in associating responses with requests.
+ </documentation>
+ </annotation>
+ <complexContent mixed="false">
+ <extension base="tns:BaseRequestType">
+ <sequence>
+ <element name="operations"
+ type="tns:ArrayOfOperations"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <element name="multiOp" type="tns:MultiOpType" />
+
+ <complexType name="ArrayOfResponses">
+ <annotation>
+ <documentation xml:lang="en">
+ A structure containing all the responses from a MultiOpType operation
+ </documentation>
+ </annotation>
+ <sequence>
+ <element ref="tns:baseResponse" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+
+ <complexType name="MultiOpResponseType">
+ <annotation>
+ <documentation xml:lang="en">
+ Response to a multi-op message. This is a sequence of responses to
+ each operation. The multi-op operation itself has a status which is
+ almost always success. Each embedded response needs to be examined to
+ determine if it succeeded or failed.
+ </documentation>
+ </annotation>
+ <complexContent mixed="false">
+ <extension base="tns:BaseResponseType">
+ <sequence>
+ <element name="responses"
+ type="tns:ArrayOfResponses"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <element name="multiOpResponse" type="tns:MultiOpResponseType" />
</schema>
Modified: trunk/schemas/caldav/caldav.xsd
===================================================================
--- trunk/schemas/caldav/caldav.xsd 2011-06-28 03:05:46 UTC (rev 51)
+++ trunk/schemas/caldav/caldav.xsd 2011-07-15 20:04:51 UTC (rev 52)
@@ -267,7 +267,7 @@
<element ref="tns:limit-freebusy-set" minOccurs="0" />
<element ref="xcal:icalendar" minOccurs="0" />
- <!-- When content-type application/xml+calendar requested -->
+ <!-- When content-type application/calendar+xml requested -->
</sequence>
<attribute name="content-type" type="string" default="text/calendar" />
Modified: trunk/schemas/icalendar/iCalendar-props.xsd
===================================================================
--- trunk/schemas/icalendar/iCalendar-props.xsd 2011-06-28 03:05:46 UTC (rev 51)
+++ trunk/schemas/icalendar/iCalendar-props.xsd 2011-07-15 20:04:51 UTC (rev 52)
@@ -35,7 +35,10 @@
<xs:complexType name="ArrayOfProperties">
<xs:sequence>
- <xs:element ref="xcal:baseProperty" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="xcal:baseProperty"/>
+ <xs:element name="tzid" type="xcal:TextPropertyType"/>
+ </xs:choice>
</xs:sequence>
</xs:complexType>
Modified: trunk/schemas/tzsvr/tzservice.xsd
===================================================================
--- trunk/schemas/tzsvr/tzservice.xsd 2011-06-28 03:05:46 UTC (rev 51)
+++ trunk/schemas/tzsvr/tzservice.xsd 2011-07-15 20:04:51 UTC (rev 52)
@@ -58,8 +58,8 @@
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 preferred name
- can be flagged with the pref attribute.
+ If multiple names are provided for the same locale the preferred
+ name can be flagged with the pref attribute.
</documentation>
</annotation>
<simpleContent>
@@ -95,7 +95,8 @@
<simpleType name="UtcOffsetType">
<annotation>
<documentation xml:lang="en">
- This type specifies the UTC offset in hours, minutes and optional seconds.
+ This type specifies the UTC offset in hours, minutes and
+ optional seconds.
</documentation>
</annotation>
<restriction base="string">
More information about the Bedework-commit
mailing list