Next in thread → Next in month →

Schema Changes to Artifact

From
Toby Considine <>
Date
2011-03-17T00:50:00+00:00
ID
Thread
Schema Changes to Artifact
The prior structure was * too * hard to work with. I have, at last, applied the extensibility model adopted in the rest of WS-Calendar to the Artifact.

See attached for details.
“It is difficult to get a man to understand something, when his salary depends upon his not understanding it”

--
Upton Sinclair.
Toby Considine TC9, Inc
OASIS Technical Advisory Board TC Chair: oBIX & WS-Calendar
TC Editor: EMIX, EnergyInterop
U.S. National Inst. of Standards and Tech. Smart Grid Architecture Committee
Email:

Phone: (919)619-2104
http://www.tcnine.com/ blog: www.NewDaedalus.com


<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs=" http://www.w3.org/2001/XMLSchema" ; xmlns:xcal=" http://docs.oasis-open.org/ns/ws-calendar/201103" ; targetNamespace=" http://docs.oasis-open.org/ns/ws-calendar/201103" ; 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" mixed="false"> 		<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 RELATED-TO 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" mixed="false"> 		<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" mixed="false"> 		<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" mixed="false"> 		<xs:complexContent mixed="false"> 			<xs:extension base="xcal:TextPropertyType"/> 		</xs:complexContent> 	</xs:complexType> 	<xs:complexType name="WscalendarAttachType" mixed="false"> 		<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 ref="xcal:artifact"/> 					<xs:element ref="xcal:artifactBase"/> 					<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:element name="artifact" type="xcal:ArtifactType"/> 	<xs:complexType name="ArtifactType"> 		<xs:annotation> 			<xs:documentation>The artifactAny is here in case ws-calendar handles elements that are not proper extensions of WS-Calendar.</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 name="artifactBase" type="xcal:ArtifactBaseType" block=""> 		<xs:annotation> 			<xs:documentation>The artifact Base 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:element> 	<xs:complexType name="ArtifactBaseType" abstract="true" block=""> 		<xs:annotation> 			<xs:documentation>The artifact Base 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:complexType> </xs:schema>
Next in thread → Next in month →