diff options
Diffstat (limited to 'modules/CIAO/docs/schema/ciaopolicy.xsd')
-rw-r--r-- | modules/CIAO/docs/schema/ciaopolicy.xsd | 607 |
1 files changed, 607 insertions, 0 deletions
diff --git a/modules/CIAO/docs/schema/ciaopolicy.xsd b/modules/CIAO/docs/schema/ciaopolicy.xsd new file mode 100644 index 00000000000..93a7415c4b4 --- /dev/null +++ b/modules/CIAO/docs/schema/ciaopolicy.xsd @@ -0,0 +1,607 @@ +<?xml version="1.0" encoding="utf-8"?> +<xs:schema targetNamespace="www.dre.vanderbilt.edu" + xmlns:ciao="www.dre.vanderbilt.edu" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + elementFormDefault="qualified" + attributeFormDefault="unqualified"> + + <xs:element name="orbPolicies"> + <xs:annotation> + <xs:documentation> + The root element of the schema. Contains zero or more policies. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element name="policy" type="ciao:policyType" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + </xs:element> + + <xs:complexType name="policyType"> + <xs:sequence> + <xs:choice> + <xs:element name="rebindPolicy" type="ciao:rebindPolicyType" /> + <xs:element name="syncScopePolicy" type="ciao:syncScopePolicyType" /> + <xs:element name="requestPriorityPolicy" type="ciao:requestPriorityPolicyType" /> + <xs:element name="replyPriorityPolicy" type="ciao:replyPriorityPolicyType" /> + <xs:element name="requestStartTimePolicy" type="ciao:requestStartTimePolicyType" /> + <xs:element name="requestEndTimePolicy" type="ciao:requestEndTimePolicyType" /> + <xs:element name="replyStartTimePolicy" type="ciao:replyStartTimePolicyType" /> + <xs:element name="replyEndTimePolicy" type="ciao:replyEndTimePolicyType" /> + <xs:element name="relativeRequestTimeoutPolicy" type="ciao:relativeRequestTimeoutPolicyType" /> + <xs:element name="relativeRoundtripPolicy" type="ciao:relativeRoundtripPolicyType" /> + <xs:element name="routingPolicy" type="ciao:routingPolicyType" /> + <xs:element name="maxHopsPolicy" type="ciao:maxHopsPolicyType" /> + <xs:element name="queueOrderPolicy" type="ciao:queueOrderPolicyType" /> + <xs:element name="priorityModelPolicy" type="ciao:priorityModelPolicyType" /> + <xs:element name="threadPoolPolicy" type="ciao:threadPoolPolicyType" /> + <xs:element name="serverProtocolPolicy" type="ciao:serverProtocolPolicyType" /> + <xs:element name="clientProtocolPolicy" type="ciao:clientProtocolPolicyType" /> + <xs:element name="privateConnectionPolicy" type="ciao:privateConnectionPolicyType" /> + <xs:element name="priorityBandedPolicy" type="ciao:priorityBandedPolicyType" /> + </xs:choice> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="policyBase" abstract="true"> + <xs:annotation> + <xs:documentation> + This is the base policy type. All policies + should be an extension of this type. + </xs:documentation> + </xs:annotation> + <xs:sequence> + <xs:element name="override" type="ciao:overrideType" /> + <xs:element name="scope" type="ciao:scopeType" /> + </xs:sequence> + </xs:complexType> + + <xs:simpleType name="scopeType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="ORB" /> + <xs:enumeration value="THREAD" /> + <xs:enumeration value="OBJECT" /> + <xs:enumeration value="POA" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="policyIDType"> + <xs:annotation> + <xs:documentation> + This type represents the policy ID. + Need to add a restriction. + </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:integer"> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="overrideType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="SET_OVERRIDE" /> + <xs:enumeration value="ADD_OVERRIDE" /> + </xs:restriction> + </xs:simpleType> + + + + <!-- The following are extensions of policyBase, one each for each policy + we may want to group these into seperate schema documents, for our + own sanity. + --> + <!-- Policies 23 - 35 are defined in Messaging_No_Impl.pidl, + with the exception of policy 32, defined in Messaging_RT_Policy.pidl + and policy 24, defined in Messaging_SyncScope_Policy.pidl --> + + <xs:complexType name="rebindPolicyType"> + <xs:annotation> + <xs:documentation> + Represents the RebindPolicy type, ID 23 + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="ciao:policyBase"> + <xs:sequence> + <xs:element name="rebindMode" type="ciao:rebindModeType" /> + </xs:sequence> + <xs:attribute name="typeID" type="xs:integer" use="required" fixed="23" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:simpleType name="rebindModeType"> + <xs:annotation> + <xs:documentation> + Note: This is not strictly represented in the pidl as an enum, + but that appears to be the intent of the way it is declared. + </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string"> + <xs:enumeration value="TRANSPARENT" /> + <xs:enumeration value="NO_REBIND" /> + <xs:enumeration value="NO_RECONNECT" /> + </xs:restriction> + </xs:simpleType> + + <xs:complexType name="syncScopePolicyType"> + <xs:annotation> + <xs:documentation> + Represents a SyncScopePolicyType, ID 24 + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="ciao:policyBase"> + <xs:sequence> + <xs:element name="synchronization" type="ciao:syncScopeType" /> + </xs:sequence> + <xs:attribute name="typeID" type="xs:integer" use="required" fixed="25" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:simpleType name="syncScopeType"> + <xs:annotation> + <xs:documentation> + Note: This was not declared an enum in Messaging_SyncScope_Policy.pidl, + but from the declaration, that appears to be the intent. + </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string"> + <xs:enumeration value="SYNC_NONE" /> + <xs:enumeration value="SYNC_WITH_TRANSPORT" /> + <xs:enumeration value="SYNC_WITH_SERVER" /> + <xs:enumeration value="SYNC_WITH_TARGET" /> + </xs:restriction> + </xs:simpleType> + + <xs:complexType name="requestPriorityPolicyType"> + <xs:annotation> + <xs:documentation> + Represents a RequestPriorityPolicy, ID 25 + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="ciao:policyBase"> + <xs:sequence> + <xs:element name="priorityRange" type="ciao:priorityRangeType" /> + </xs:sequence> + <xs:attribute name="typeID" type="xs:integer" use="required" fixed="25" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="replyPriorityPolicyType"> + <xs:annotation> + <xs:documentation> + Represents a ReplyPriorityPolicy, ID 26 + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="ciao:policyBase"> + <xs:sequence> + <xs:element name="priorityRange" type="ciao:priorityRangeType" /> + </xs:sequence> + <xs:attribute name="typeID" type="xs:integer" use="required" fixed="26" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="priorityRangeType"> + <xs:annotation> + <xs:documentation> + Represents a PriorityRange struct defined in Messaging_No_Impl.pidl + </xs:documentation> + </xs:annotation> + <xs:sequence> + <xs:element name="min" type="xs:integer" /> + <xs:element name="max" type="xs:integer" /> + </xs:sequence> + </xs:complexType> + + + <xs:complexType name="requestStartTimePolicyType"> + <xs:annotation> + <xs:documentation> + Represents a RequestStartTimePolicy, ID 27 + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="ciao:policyBase"> + <xs:sequence> + <xs:element name="startTime" type="ciao:utcTime" /> + </xs:sequence> + <xs:attribute name="typeID" type="xs:integer" use="required" fixed="27" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + + <xs:complexType name="requestEndTimePolicyType"> + <xs:annotation> + <xs:documentation> + Represents a RequestEndTimePolicy, ID 28 + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="ciao:policyBase"> + <xs:sequence> + <xs:element name="endTime" type="ciao:utcTime" /> + </xs:sequence> + <xs:attribute name="typeID" type="xs:integer" use="required" fixed="28" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + + <xs:complexType name="replyStartTimePolicyType"> + <xs:annotation> + <xs:documentation> + Represents a ReplyStartTimePolicy, ID 29 + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="ciao:policyBase"> + <xs:sequence> + <xs:element name="startTime" type="ciao:utcTime" /> + </xs:sequence> + <xs:attribute name="typeID" type="xs:integer" use="required" fixed="29" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + + <xs:complexType name="replyEndTimePolicyType"> + <xs:annotation> + <xs:documentation> + Represents a ReplyEndTimePolicy, ID 30 + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="ciao:policyBase"> + <xs:sequence> + <xs:element name="endTime" type="ciao:utcTime" /> + </xs:sequence> + <xs:attribute name="typeID" type="xs:integer" use="required" fixed="30" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="utcTime"> + <xs:annotation> + <xs:documentation> + Represents a TimeBase::UtcT struct, defined in tao/TimeBase.pidl + </xs:documentation> + </xs:annotation> + <xs:sequence> + <xs:element name="time" type="xs:integer" /> + <xs:element name="inaccLo" type="xs:integer" /> + <xs:element name="inaccHi" type="xs:integer" /> + <xs:element name="tdf" type="xs:integer" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="relativeRequestTimeoutPolicyType"> + <xs:annotation> + <xs:documentation> + Represents a RelativeRequestTimeoutPolicy, ID 31. + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="ciao:policyBase"> + <xs:sequence> + <xs:element name="relativeExpiry" type="xs:integer" /> + </xs:sequence> + <xs:attribute name="typeID" type="xs:integer" use="required" fixed="31" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="relativeRoundtripPolicyType"> + <xs:annotation> + <xs:documentation> + Represents a RelativeRoundtripPolicy, ID 32 + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="ciao:policyBase"> + <xs:sequence> + <xs:element name="relativeExpiry" type="xs:integer" /> + </xs:sequence> + <xs:attribute name="typeID" type="xs:integer" use="required" fixed="32" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="routingPolicyType"> + <xs:annotation> + <xs:documentation> + Represents a RoutingPolicy, ID 33 + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="ciao:policyBase"> + <xs:sequence> + <xs:element name="routingTypeRangeMin" type="ciao:routingType" /> + <xs:element name="routingTypeRangeMax" type="ciao:routingType" /> + </xs:sequence> + <xs:attribute name="typeID" type="xs:integer" use="required" fixed="33" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:simpleType name="routingType"> + <xs:annotation> + <xs:documentation> + Note: This is not explicitly set up as an enum in Messaging_No_Impl.pidl, + but that appears to be the intent from the declaration. + </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string"> + <xs:enumeration value="ROUTE_NONE" /> + <xs:enumeration value="ROUTE_FORWARD" /> + <xs:enumeration value="ROUTE_STORE_AND_FORWARD" /> + </xs:restriction> + </xs:simpleType> + + <xs:complexType name="maxHopsPolicyType"> + <xs:annotation> + <xs:documentation> + Represents a MaxHopsPolicy, ID 34 + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="ciao:policyBase"> + <xs:sequence> + <xs:element name="maxHops" type="xs:integer" /> + </xs:sequence> + <xs:attribute name="typeID" type="xs:integer" use="required" fixed="34" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="queueOrderPolicyType"> + <xs:annotation> + <xs:documentation> + Represents a QueueOrderPolicy, ID 35 + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="ciao:policyBase"> + <xs:sequence> + <xs:element name="allowedOrders" type="ciao:ordersType" /> + </xs:sequence> + <xs:attribute name="typeID" type="xs:integer" use="required" fixed="35" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:simpleType name="ordersType"> + <xs:annotation> + <xs:documentation> + Note: This is not explicitly declared to be an enum in Messaging_No_Impl.pidl, + but that appears to be the intent from the declaration. + </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string"> + <xs:enumeration value="ORDER_ANY" /> + <xs:enumeration value="ORDER_TEMPORAL" /> + <xs:enumeration value="ORDER_PRIORITY" /> + <xs:enumeration value="ORDER_DEADLINE" /> + </xs:restriction> + </xs:simpleType> + + <!-- Policies 40 - 45 are defined in RTCORBA.pidl --> + <!-- priorityModelPolicy --> + <xs:complexType name="priorityModelPolicyType"> + <xs:annotation> + <xs:documentation> + Represents the Priority Model Policy, ID 40 + </xs:documentation> + </xs:annotation> + + <xs:complexContent> + <xs:extension base="ciao:policyBase"> + <xs:sequence> + <xs:element name="priorityModel" type="ciao:priorityModelType" /> + <xs:element name="serverPriority" type="xs:integer" /> + </xs:sequence> + <xs:attribute name="typeID" type="xs:integer" use="required" fixed="40" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:simpleType name="priorityModelType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="CLIENT_PROPAGATED" /> + <xs:enumeration value="SERVER_DECLARED" /> + </xs:restriction> + </xs:simpleType> + + <!-- threadPoolPolicy --> + + <xs:complexType name="threadPoolPolicyType"> + <xs:annotation> + <xs:documentation> + Represents the ThreadPool policy, ID 41 + </xs:documentation> + </xs:annotation> + + <xs:complexContent> + <xs:extension base="ciao:policyBase"> + <xs:sequence> + <xs:element name="threadPoolID" type="xs:integer" /> + </xs:sequence> + <xs:attribute name="typeID" type="xs:integer" use="required" fixed="41" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + + <!-- serverProtocolPolicy --> + + <xs:complexType name="serverProtocolPolicyType"> + <xs:annotation> + <xs:documentation> + Represents the Server Protocol policy, ID 42 + </xs:documentation> + </xs:annotation> + + <xs:complexContent> + <xs:extension base="ciao:policyBase"> + <xs:sequence> + <xs:element name="protocol" type="ciao:protocolType" + minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + <xs:attribute name="typeID" type="xs:integer" use="required" fixed="42" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + + <!-- clientProtocolPolicy --> + <xs:complexType name="clientProtocolPolicyType"> + <xs:annotation> + <xs:documentation> + Represents the Client Protocol policy, ID 43 + </xs:documentation> + </xs:annotation> + + <xs:complexContent> + <xs:extension base="ciao:policyBase"> + <xs:sequence> + <xs:element name="protocol" type="ciao:protocolType" + minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + <xs:attribute name="typeID" type="xs:integer" use="required" fixed="43" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + + <!-- Protocol definitions for client and server Protocol properties types. --> + <xs:complexType name="protocolType"> + <xs:sequence> + <xs:element name="protocolType" type="xs:integer" /> + <xs:element name="orbProtocolProperties" type="ciao:protocolPropertyType" /> + <xs:element name="transportProtocolProperties" type="ciao:protocolPropertyType" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="protocolPropertyType"> + <xs:sequence> + <xs:choice> + <xs:element name="tcpProtocolProperties" type="ciao:tcpProtocolPropertiesType" /> + <xs:element name="giopProtocolProperties" type="ciao:giopProtocolPropertiesType" /> + <xs:element name="unixDomainProtocolProperties" type="ciao:unixDomainProtocolPropertiesType" /> + <xs:element name="sharedMemoryProtocolProperties" type="ciao:sharedMemoryProtocolPropertiesType" /> + </xs:choice> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="protocolPropertyBase" abstract="true"> + <xs:annotation> + <xs:documentation> + Base type for all protocol properties. + </xs:documentation> + </xs:annotation> + <xs:attribute name="type" type="xs:string" use="required" /> + </xs:complexType> + + <xs:complexType name="tcpProtocolPropertiesType"> + <xs:complexContent> + <xs:extension base="ciao:protocolPropertyBase"> + <xs:sequence> + <xs:element name="sendBufferSize" type="xs:integer" /> + <xs:element name="recvBufferSize" type="xs:integer" /> + <xs:element name="keepAlive" type="xs:boolean" /> + <xs:element name="dontRoute" type="xs:boolean" /> + <xs:element name="noDelay" type="xs:boolean" /> + <xs:element name="enableNetworkPriority" type="xs:boolean" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="giopProtocolPropertiesType"> + <xs:complexContent> + <xs:extension base="ciao:protocolPropertyBase" /> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="unixDomainProtocolPropertiesType"> + <xs:complexContent> + <xs:extension base="ciao:protocolPropertyBase"> + <xs:sequence> + <xs:element name="sendBufferSize" type="xs:integer" /> + <xs:element name="recvBufferSize" type="xs:integer" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="sharedMemoryProtocolPropertiesType"> + <xs:complexContent> + <xs:extension base="ciao:protocolPropertyBase"> + <xs:sequence> + <xs:element name="preallocateBufferSize" type="xs:integer" /> + <xs:element name="mmapFilename" type="xs:string" /> + <xs:element name="mmapLockname" type="xs:string" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <!-- TODO: Provide other protocolProperties types --> + + <!-- privateConnectionPolicy --> + <xs:complexType name="privateConnectionPolicyType"> + <xs:annotation> + <xs:documentation> + privateConnectionPolicy extension of policyBase, ID 44 + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="ciao:policyBase"> + <!-- empty --> + <xs:attribute name="typeID" type="xs:integer" use="required" fixed="44" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + + <!-- priorityBandedPolicy --> + <xs:complexType name="priorityBandedPolicyType"> + <xs:annotation> + <xs:documentation> + priorityBandedPolicy extension of policyBase, ID 45 + </xs:documentation> + </xs:annotation> + + <xs:complexContent> + <xs:extension base="ciao:policyBase"> + <xs:sequence> + <xs:element name="priorityBand" type="ciao:priorityBandType" + minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + <xs:attribute name="typeID" type="xs:integer" use="required" fixed="45" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + + <xs:complexType name="priorityBandType"> + <xs:annotation> + <xs:documentation> + Represents the PriorityBand struct for the priorityBandedPolicy element. + </xs:documentation> + </xs:annotation> + <xs:sequence> + <xs:element name="low" type="xs:integer" /> + <xs:element name="high" type="xs:integer" /> + </xs:sequence> + </xs:complexType> + + + +</xs:schema>
\ No newline at end of file |