Index: fedd/abac-src/rtml/schemas/RTMLv1.0q.xsd
===================================================================
--- fedd/abac-src/rtml/schemas/RTMLv1.0q.xsd	(revision 8780cbecc6db2bdc2b9ef31eec6e5209ad3bff15)
+++ fedd/abac-src/rtml/schemas/RTMLv1.0q.xsd	(revision 8780cbecc6db2bdc2b9ef31eec6e5209ad3bff15)
@@ -0,0 +1,637 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- edited with XML Spy v4.3 U (http://www.xmlspy.com) by Kangshi (Kangshi) -->
+<xs:schema targetNamespace="http://crypto.stanford.edu/dc/RTMLv1.0" xmlns="http://crypto.stanford.edu/dc/RTMLv1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" elementFormDefault="qualified">
+	<!--xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"/-->
+        <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="file:///var/tomcat4/webapps/demo/WEB-INF/xmldsig-core-schema.xsd"/>
+	<xs:element name="CredentialStore">
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element name="DefaultPrincipal" type="Principal" minOccurs="0"/>
+				<xs:element ref="ApplicationDomainSpecification" minOccurs="0" maxOccurs="unbounded"/>
+				<xs:element name="PrincipalInfo" type="PrincipalInfo" minOccurs="0" maxOccurs="unbounded"/>
+				<xs:element ref="Credential" minOccurs="0" maxOccurs="unbounded"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="ApplicationDomainSpecification">
+		<xs:annotation>
+			<xs:documentation>This specifies data types and role names used in one application domain.		</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element name="ImportDomain" type="ImportDomain" minOccurs="0" maxOccurs="unbounded"/>
+				<xs:choice minOccurs="0" maxOccurs="unbounded">
+					<xs:element name="IntegerType" type="IntegerTypeDeclaration"/>
+					<xs:element name="DecimalType" type="DecimalTypeDeclaration"/>
+					<xs:element name="EnumType" type="EnumTypeDeclaration"/>
+					<xs:element name="StringType" type="StringTypeDeclaration"/>
+					<xs:element name="RecordType" type="RecordTypeDeclaration"/>
+					<xs:element name="TreeType" type="TreeTypeDeclaration"/>
+				</xs:choice>
+				<xs:element name="PrincipalType" type="PrincipalTypeDeclaration" minOccurs="0"/>
+				<xs:element name="RoleDeclaration" type="RoleDeclaration" minOccurs="0" maxOccurs="unbounded"/>
+			</xs:sequence>
+			<xs:attribute name="uri" type="xs:anyURI" use="required"/>
+			<xs:attribute name="id" type="HashID"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:complexType name="ImportDomain">
+		<xs:sequence>
+			<xs:element name="Location" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
+		</xs:sequence>
+		<xs:attribute name="name" type="Identifier" use="required"/>
+		<xs:attribute name="idref" type="HashID" use="required"/>
+		<xs:attribute name="uri" type="xs:anyURI"/>
+	</xs:complexType>
+	<xs:complexType name="IntegerTypeDeclaration">
+		<xs:annotation>
+			<xs:documentation>It is required that base  is between min and max.  A legal value is between min and max, and satisfies (v-base) % step = 0.</xs:documentation>
+		</xs:annotation>
+		<xs:attribute name="name" type="Identifier" use="required"/>
+		<xs:attribute name="min" type="xs:long" use="required"/>
+		<xs:attribute name="includeMin" type="xs:boolean" default="true"/>
+		<xs:attribute name="max" type="xs:long" use="required"/>
+		<xs:attribute name="includeMax" type="xs:boolean" default="true"/>
+		<xs:attribute name="step" type="xs:long" default="1"/>
+		<xs:attribute name="base" type="xs:long" default="0"/>
+	</xs:complexType>
+	<xs:complexType name="DecimalTypeDeclaration">
+		<xs:annotation>
+			<xs:documentation>Similar to IntType.</xs:documentation>
+		</xs:annotation>
+		<xs:attribute name="name" type="Identifier" use="required"/>
+		<xs:attribute name="min" type="xs:decimal" use="required"/>
+		<xs:attribute name="includeMin" type="xs:boolean"/>
+		<xs:attribute name="max" type="xs:decimal" use="required"/>
+		<xs:attribute name="includeMax" type="xs:boolean"/>
+		<xs:attribute name="step" type="xs:decimal" default="1"/>
+		<xs:attribute name="base" type="xs:decimal" default="0"/>
+	</xs:complexType>
+	<xs:complexType name="EnumTypeDeclaration">
+		<xs:sequence>
+			<xs:element name="EnumValue" type="Enum" maxOccurs="unbounded"/>
+		</xs:sequence>
+		<xs:attribute name="name" type="Identifier" use="required"/>
+		<xs:attribute name="ignoreCase" type="xs:boolean" default="false"/>
+		<xs:attribute name="ordered" type="xs:boolean" default="false"/>
+		<xs:attribute name="size" type="xs:int"/>
+	</xs:complexType>
+	<xs:complexType name="StringTypeDeclaration">
+		<xs:attribute name="name" type="Identifier" use="required"/>
+		<xs:attribute name="ignoreCase" type="xs:boolean" default="false"/>
+		<xs:attribute name="ordered" type="xs:boolean" default="false"/>
+	</xs:complexType>
+	<xs:complexType name="TreeTypeDeclaration">
+		<xs:annotation>
+			<xs:documentation>The three attributes rootsymbol, separator, and rootFirst determine how a constant of a tree type looks like.</xs:documentation>
+		</xs:annotation>
+		<xs:attribute name="name" type="Identifier" use="required"/>
+		<xs:attribute name="separator" type="xs:string" use="required"/>
+		<xs:attribute name="order" type="TreeValueOrderType" use="required"/>
+	</xs:complexType>
+	<xs:simpleType name="TreeValueOrderType">
+		<xs:restriction base="xs:string">
+			<xs:enumeration value="rootFirst"/>
+			<xs:enumeration value="rootLast"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:complexType name="RecordTypeDeclaration">
+		<xs:sequence>
+			<xs:element name="Field" maxOccurs="unbounded">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="Type" type="NameRef"/>
+					</xs:sequence>
+					<xs:attribute name="name" type="Identifier" use="required"/>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+		<xs:attribute name="name" type="Identifier" use="required"/>
+	</xs:complexType>
+	<xs:attributeGroup name="NameRef">
+		<xs:attribute name="name" type="Identifier" use="required"/>
+		<xs:attribute name="domain" type="Identifier"/>
+	</xs:attributeGroup>
+	<xs:complexType name="NameRef">
+		<xs:attributeGroup ref="NameRef"/>
+	</xs:complexType>
+	<xs:complexType name="PrincipalTypeDeclaration">
+		<xs:sequence>
+			<xs:element name="Type" type="NameRef"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="RoleDeclaration">
+		<xs:sequence>
+			<xs:element name="Description" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:choice minOccurs="0">
+				<xs:element name="Restriction">
+					<xs:complexType>
+						<xs:sequence>
+							<xs:element name="BaseRole" type="NameRef"/>
+							<xs:element name="Parameter" minOccurs="0" maxOccurs="unbounded">
+								<xs:complexType>
+									<xs:sequence>
+										<xs:element name="Type" type="NameRef"/>
+									</xs:sequence>
+									<xs:attribute name="name" type="Identifier" use="required"/>
+									<xs:attribute name="requireSafety" type="xs:boolean" default="false"/>
+								</xs:complexType>
+							</xs:element>
+						</xs:sequence>
+					</xs:complexType>
+				</xs:element>
+				<xs:element name="Extension">
+					<xs:complexType>
+						<xs:sequence>
+							<xs:element name="BaseRole" type="NameRef"/>
+							<xs:element name="Parameter" minOccurs="0" maxOccurs="unbounded">
+								<xs:complexType>
+									<xs:sequence>
+										<xs:element name="Type" type="NameRef"/>
+									</xs:sequence>
+									<xs:attribute name="name" type="Identifier" use="required"/>
+									<xs:attribute name="requireSafety" type="xs:boolean" default="false"/>
+								</xs:complexType>
+							</xs:element>
+						</xs:sequence>
+					</xs:complexType>
+				</xs:element>
+				<xs:element name="Projection">
+					<xs:complexType>
+						<xs:sequence>
+							<xs:element name="BaseRole"/>
+							<xs:element name="Parameter" minOccurs="0" maxOccurs="unbounded">
+								<xs:complexType>
+									<xs:attribute name="name" type="Identifier" use="required"/>
+								</xs:complexType>
+							</xs:element>
+						</xs:sequence>
+					</xs:complexType>
+				</xs:element>
+				<xs:element name="Plain">
+					<xs:complexType>
+						<xs:sequence>
+							<xs:element name="Identity" minOccurs="0">
+								<xs:complexType>
+									<xs:sequence>
+										<xs:element name="BaseRole" type="NameRef"/>
+									</xs:sequence>
+								</xs:complexType>
+							</xs:element>
+							<xs:element name="Parameter" minOccurs="0" maxOccurs="unbounded">
+								<xs:complexType>
+									<xs:sequence>
+										<xs:element name="Type" type="NameRef"/>
+									</xs:sequence>
+									<xs:attribute name="name" type="Identifier" use="required"/>
+									<xs:attribute name="requireSafety" type="xs:boolean" default="false"/>
+								</xs:complexType>
+							</xs:element>
+						</xs:sequence>
+						<xs:attribute name="dimension" type="xs:int" default="1"/>
+						<xs:attribute name="issuerTraces" type="IssuerTracesType" default="rule"/>
+						<xs:attribute name="subjectTraces" type="SubjectTracesType" default="fact"/>
+					</xs:complexType>
+				</xs:element>
+			</xs:choice>
+		</xs:sequence>
+		<xs:attribute name="name" type="Identifier" use="required"/>
+		<xs:attribute name="isIdentity" type="xs:boolean" default="false"/>
+	</xs:complexType>
+	<xs:simpleType name="IssuerTracesType">
+		<xs:restriction base="xs:token">
+			<xs:enumeration value="all"/>
+			<xs:enumeration value="def"/>
+			<xs:enumeration value="rule"/>
+			<xs:enumeration value="none"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="SubjectTracesType">
+		<xs:restriction base="xs:token">
+			<xs:enumeration value="all"/>
+			<xs:enumeration value="fact"/>
+			<xs:enumeration value="none"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:element name="Credential">
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element name="Preamble" type="Preamble"/>
+				<xs:element name="Issuer">
+					<xs:complexType>
+						<xs:sequence>
+							<xs:group ref="PrincipalValue"/>
+						</xs:sequence>
+					</xs:complexType>
+				</xs:element>
+				<xs:group ref="Definition" maxOccurs="unbounded"/>
+				<xs:element name="ValidityTime" type="ValidityTime"/>
+				<xs:element name="ValidityRule" type="ValidityRule" minOccurs="0" maxOccurs="unbounded"/>
+				<xs:choice minOccurs="0">
+					<xs:element ref="ds:Signature"/>
+					<xs:element ref="ds:X509Data"/>
+				</xs:choice>
+			</xs:sequence>
+			<xs:attribute name="id" type="HashID"/>
+		</xs:complexType>
+		<xs:unique name="principalShortName">
+			<xs:selector xpath=".//Principal"/>
+			<xs:field xpath="@shortName"/>
+		</xs:unique>
+		<xs:keyref name="principalShortNameRef" refer="principalShortName">
+			<xs:selector xpath=".//PrincipaRef"/>
+			<xs:field xpath="@shortName"/>
+		</xs:keyref>
+	</xs:element>
+	<xs:element name="LocalStatement">
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element name="Preamble" type="Preamble"/>
+				<xs:element name="RuleIdentifier" type="xs:token" minOccurs="0"/>
+				<xs:group ref="Definition" maxOccurs="unbounded"/>
+				<xs:element name="ValidityTime" type="ValidityTime"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:complexType name="Preamble">
+		<xs:sequence>
+			<xs:element name="ImportDomain" type="ImportDomain" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element name="Principal" type="Principal" minOccurs="0" maxOccurs="unbounded"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="ValidityTime">
+		<xs:sequence>
+			<xs:element name="IssueTime" type="xs:dateTime"/>
+			<xs:element name="NotBefore" type="xs:dateTime" minOccurs="0"/>
+			<xs:element name="NotAfter" type="xs:dateTime" minOccurs="0"/>
+			<xs:element name="LifeTime" type="xs:duration" minOccurs="0"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="CRLLocator">
+		<xs:sequence>
+			<xs:group ref="PrincipalValue"/>
+		</xs:sequence>
+		<xs:attribute name="frequency" type="xs:duration"/>
+		<xs:attribute name="uri" type="xs:anyURI"/>
+	</xs:complexType>
+	<xs:complexType name="ValidityRule">
+		<xs:sequence>
+			<xs:any/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:group name="VerificationRecord">
+		<xs:sequence/>
+	</xs:group>
+	<xs:complexType name="RoleTerm">
+		<xs:sequence>
+			<xs:element name="Parameter" type="Field" minOccurs="0" maxOccurs="unbounded"/>
+		</xs:sequence>
+		<xs:attributeGroup ref="NameRef"/>
+	</xs:complexType>
+	<xs:group name="Role">
+		<xs:choice>
+			<xs:element name="RoleTerm" type="RoleTerm"/>
+			<xs:element name="ExternalRole">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:group ref="PrincipalValue"/>
+						<xs:element name="RoleTerm" type="RoleTerm"/>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+		</xs:choice>
+	</xs:group>
+	<xs:complexType name="Field">
+		<xs:group ref="Constraint" minOccurs="0"/>
+		<xs:attribute name="name" type="Identifier" use="required"/>
+		<xs:attribute name="id" type="xs:ID"/>
+	</xs:complexType>
+	<xs:complexType name="Record">
+		<xs:sequence>
+			<xs:element name="Field" type="Field" maxOccurs="unbounded"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:simpleType name="SpecialPrincipalType">
+		<xs:restriction base="xs:token">
+			<xs:enumeration value="this"/>
+			<xs:enumeration value="issuer"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:group name="Constraint">
+		<xs:choice>
+			<xs:element name="IntegerValue" type="Integer"/>
+			<xs:element name="DecimalValue" type="Decimal"/>
+			<xs:element name="StringValue" type="String"/>
+			<xs:element name="EnumValue" type="Enum"/>
+			<xs:element name="TimeValue" type="Time"/>
+			<xs:element name="TreeValue" type="Tree"/>
+			<xs:element name="Record" type="Record"/>
+			<xs:group ref="PrincipalValue"/>
+			<xs:element name="SpecialPrincipal"/>
+			<xs:element name="Interval" type="Interval"/>
+			<xs:element name="Set" type="Set"/>
+			<xs:element name="Equals">
+				<xs:complexType>
+					<xs:attribute name="ref" type="xs:IDREF"/>
+				</xs:complexType>
+			</xs:element>
+		</xs:choice>
+	</xs:group>
+	<xs:group name="Definition">
+		<xs:choice>
+			<xs:element name="SimpleMember" type="SimpleMember"/>
+			<xs:element name="SimpleContainment" type="SimpleContainment"/>
+			<xs:element name="LinkedContainment" type="LinkingContainment"/>
+			<xs:element name="IntersectionContainment" type="IntersectionContainment"/>
+			<xs:element name="ProductContainment" type="ProductContainment"/>
+			<xs:element name="ExclusiveProductContainment" type="ExclusiveProductContainment"/>
+			<xs:element name="SimpleDelegation" type="SimpleDelegation"/>
+			<xs:element name="AdvancedDelegation" type="AdvancedDelegation"/>
+		</xs:choice>
+	</xs:group>
+	<xs:complexType name="RoleSequence">
+		<xs:sequence>
+			<xs:group ref="Role" minOccurs="2" maxOccurs="unbounded"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="DefinitionBase" abstract="true">
+		<xs:sequence>
+			<xs:element name="HeadRoleTerm" type="RoleTerm"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="SimpleMember">
+		<xs:complexContent>
+			<xs:extension base="DefinitionBase">
+				<xs:sequence>
+					<xs:group ref="PrincipalValue"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="SimpleContainment">
+		<xs:complexContent>
+			<xs:extension base="DefinitionBase">
+				<xs:sequence>
+					<xs:group ref="Role"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="IntersectionContainment">
+		<xs:complexContent>
+			<xs:extension base="DefinitionBase">
+				<xs:sequence>
+					<xs:element name="Intersection" type="RoleSequence"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="LinkingContainment">
+		<xs:complexContent>
+			<xs:extension base="DefinitionBase">
+				<xs:sequence>
+					<xs:element name="LinkedRole">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="RoleTerm" type="RoleTerm"/>
+								<xs:element name="RoleTerm" type="RoleTerm"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="ProductContainment">
+		<xs:complexContent>
+			<xs:extension base="DefinitionBase">
+				<xs:sequence>
+					<xs:element name="Product" type="RoleSequence"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="ExclusiveProductContainment">
+		<xs:complexContent>
+			<xs:extension base="DefinitionBase">
+				<xs:sequence>
+					<xs:element name="ExclusiveProduct" type="RoleSequence"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="SimpleDelegation">
+		<xs:complexContent>
+			<xs:extension base="DefinitionBase">
+				<xs:sequence>
+					<xs:element name="DelegateTo">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:group ref="PrincipalValue"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="Control" minOccurs="0">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:group ref="Role"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="AdvancedDelegation">
+		<xs:complexContent>
+			<xs:extension base="DefinitionBase">
+				<xs:sequence>
+					<xs:element name="DelegateTo">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="RoleTerm" type="RoleTerm"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="Control" minOccurs="0">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:group ref="Role"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:simpleType name="Identifier">
+		<xs:annotation>
+			<xs:documentation>The schema data type of identifier used for domain names, role names, type names, etc.</xs:documentation>
+		</xs:annotation>
+		<xs:restriction base="xs:token"/>
+	</xs:simpleType>
+	<xs:simpleType name="HashID">
+		<xs:restriction base="xs:base64Binary"/>
+	</xs:simpleType>
+	<xs:simpleType name="Integer">
+		<xs:annotation>
+			<xs:documentation>The schema data type for IntegerValue.  Although it is xs:long, the current xerces parser only allows int.</xs:documentation>
+		</xs:annotation>
+		<xs:restriction base="xs:long"/>
+	</xs:simpleType>
+	<xs:simpleType name="Decimal">
+		<xs:annotation>
+			<xs:documentation>The schema data type for DecimalValue.</xs:documentation>
+		</xs:annotation>
+		<xs:restriction base="xs:decimal"/>
+	</xs:simpleType>
+	<xs:simpleType name="String">
+		<xs:annotation>
+			<xs:documentation>The schema data type for the StringValue element in RTML credentials.  Now using token.</xs:documentation>
+		</xs:annotation>
+		<xs:restriction base="xs:token"/>
+	</xs:simpleType>
+	<xs:simpleType name="Enum">
+		<xs:restriction base="xs:token"/>
+	</xs:simpleType>
+	<xs:simpleType name="Time">
+		<xs:union memberTypes="xs:dateTime xs:date xs:time xs:gYear xs:gYearMonth xs:gMonth xs:gMonthDay xs:gDay"/>
+	</xs:simpleType>
+	<xs:complexType name="Tree">
+		<xs:annotation>
+			<xs:documentation>A tree value contains a string which consists of token values separated by a separator symbol, which is declared in TreeType.  The attributes determines whether the current node, children, and descendents are included.</xs:documentation>
+		</xs:annotation>
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="includeCurrent" type="xs:boolean" default="true"/>
+				<xs:attribute name="includeChildren" type="xs:boolean" default="false"/>
+				<xs:attribute name="includeDescendents" type="xs:boolean" default="false"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<xs:complexType name="Principal">
+		<xs:choice>
+			<xs:element name="KeyHash" type="HashID"/>
+			<xs:element name="IntegerValue" type="Integer"/>
+			<xs:element name="StringValue" type="String"/>
+		</xs:choice>
+		<xs:attribute name="shortName" type="Identifier"/>
+	</xs:complexType>
+	<xs:complexType name="PrincipalRef">
+		<xs:attribute name="shortName" type="Identifier"/>
+	</xs:complexType>
+	<xs:complexType name="PrincipalInfo">
+		<xs:sequence>
+			<xs:element ref="ds:KeyValue"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:group name="PrincipalValue">
+		<xs:choice>
+			<xs:element name="Principal" type="Principal"/>
+			<xs:element name="PrincipalRef" type="PrincipalRef"/>
+		</xs:choice>
+	</xs:group>
+	<xs:complexType name="Interval">
+		<xs:choice>
+			<xs:sequence>
+				<xs:element name="From" minOccurs="0">
+					<xs:complexType>
+						<xs:sequence>
+							<xs:element name="IntegerValue" type="Integer"/>
+						</xs:sequence>
+						<xs:attribute name="included" type="xs:boolean" default="true"/>
+					</xs:complexType>
+				</xs:element>
+				<xs:element name="To" minOccurs="0">
+					<xs:complexType>
+						<xs:sequence>
+							<xs:element name="IntegerValue" type="Integer"/>
+						</xs:sequence>
+						<xs:attribute name="included" type="xs:boolean" default="true"/>
+					</xs:complexType>
+				</xs:element>
+			</xs:sequence>
+			<xs:sequence>
+				<xs:element name="From" minOccurs="0">
+					<xs:complexType>
+						<xs:sequence>
+							<xs:element name="DecimalValue" type="Decimal"/>
+						</xs:sequence>
+						<xs:attribute name="included" type="xs:boolean" default="true"/>
+					</xs:complexType>
+				</xs:element>
+				<xs:element name="To" minOccurs="0">
+					<xs:complexType>
+						<xs:sequence>
+							<xs:element name="DecimalValue" type="Decimal"/>
+						</xs:sequence>
+						<xs:attribute name="included" type="xs:boolean" default="true"/>
+					</xs:complexType>
+				</xs:element>
+			</xs:sequence>
+			<xs:sequence>
+				<xs:element name="From" minOccurs="0">
+					<xs:complexType>
+						<xs:sequence>
+							<xs:element name="EnumValue" type="Enum"/>
+						</xs:sequence>
+						<xs:attribute name="included" type="xs:boolean" default="true"/>
+					</xs:complexType>
+				</xs:element>
+				<xs:element name="To" minOccurs="0">
+					<xs:complexType>
+						<xs:sequence>
+							<xs:element name="EnumValue" type="Enum"/>
+						</xs:sequence>
+						<xs:attribute name="included" type="xs:boolean" default="true"/>
+					</xs:complexType>
+				</xs:element>
+			</xs:sequence>
+			<xs:sequence>
+				<xs:element name="From" minOccurs="0">
+					<xs:complexType>
+						<xs:sequence>
+							<xs:element name="StringValue" type="String"/>
+						</xs:sequence>
+						<xs:attribute name="included" type="xs:boolean" default="true"/>
+					</xs:complexType>
+				</xs:element>
+				<xs:element name="To" minOccurs="0">
+					<xs:complexType>
+						<xs:sequence>
+							<xs:element name="StringValue" type="String"/>
+						</xs:sequence>
+						<xs:attribute name="included" type="xs:boolean" default="true"/>
+					</xs:complexType>
+				</xs:element>
+			</xs:sequence>
+			<xs:sequence>
+				<xs:element name="From" minOccurs="0">
+					<xs:complexType>
+						<xs:sequence>
+							<xs:element name="TimeValue" type="Time"/>
+						</xs:sequence>
+						<xs:attribute name="included" type="xs:boolean" default="true"/>
+					</xs:complexType>
+				</xs:element>
+				<xs:element name="To" minOccurs="0">
+					<xs:complexType>
+						<xs:sequence>
+							<xs:element name="TimeValue" type="Time"/>
+						</xs:sequence>
+						<xs:attribute name="included" type="xs:boolean" default="true"/>
+					</xs:complexType>
+				</xs:element>
+			</xs:sequence>
+		</xs:choice>
+	</xs:complexType>
+	<xs:complexType name="Set">
+		<xs:choice>
+			<xs:element name="IntegerValue" type="Integer" maxOccurs="unbounded"/>
+			<xs:element name="DecimalValue" type="Decimal" maxOccurs="unbounded"/>
+			<xs:element name="StringValue" type="String" maxOccurs="unbounded"/>
+			<xs:element name="EnumValue" type="Enum" maxOccurs="unbounded"/>
+			<xs:group ref="PrincipalValue" maxOccurs="unbounded"/>
+		</xs:choice>
+	</xs:complexType>
+</xs:schema>
