Newer
Older
Import / applications / MakePDF / Tests / exip-0.5.4 / tests / test-set / exip / schema_demo.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

	<xs:element name="configuration">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="capable-switch" type="OFCapableSwitchType"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:complexType name="OFCapableSwitchType">
		<xs:sequence>
			<xs:element name="resources" type="OFCapableSwitchResourceListType"/>
			<xs:element name="logical-switches" type="OFLogicalSwitchListType"/>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="OFCapableSwitchResourceListType">
		<xs:sequence>
			<xs:element name="port" type="OFPortType" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="OFLogicalSwitchListType">
		<xs:sequence>
			<xs:element name="switch" type="OFLogicalSwitchType" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="OFLogicalSwitchType">
		<xs:sequence>
			<xs:element name="id" type="OFConfigID"/>
			<xs:element name="datapath-id" type="OFConfigID"/>
			<xs:element name="enabled" type="xs:boolean"/>
			<xs:element name="lost-connection-behavior" type="OFLogicalSwitchLostConnnectionBehavior"/>
			<xs:element name="resources" type="OFLogicalSwitchResourceListType"/>
			<xs:element name="controllers" type="OFControllerListType"/>
		</xs:sequence>
	</xs:complexType>

	<xs:simpleType name="OFConfigID">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>

	<xs:simpleType name="OFLogicalSwitchLostConnnectionBehavior">
		<xs:restriction base="xs:string">
			<xs:enumeration value="failSecureMode"/>
			<xs:enumeration value="failStandaloneMode"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:complexType name="OFControllerListType">
		<xs:sequence>
			<xs:element name="controller" type="OFControllerType" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="OFControllerType">
		<xs:sequence>
			<xs:element name="id" type="OFConfigID"/>
			<xs:element name="role" type="OFControllerRoleType"/>
			<xs:element name="ip-address" type="ip-address"/>
			<xs:element name="port" type="xs:integer"/>
			<xs:element name="protocol" type="OFControllerProtocolType"/>
			<xs:element name="state" type="OFControllerOpenFlowStateType"/>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="OFControllerOpenFlowStateType">
		<xs:sequence>
			<xs:element name="connection-state" type="OFControllerConnectionStateType"/>
			<xs:element name="current-version" type="OFOpenFlowVersionType"/>
		</xs:sequence>
	</xs:complexType>

	<xs:simpleType name="OFOpenFlowVersionType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="1.2"/>
			<xs:enumeration value="1.1"/>
			<xs:enumeration value="1.0"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="OFControllerConnectionStateType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="up"/>
			<xs:enumeration value="down"/>
		</xs:restriction>
	</xs:simpleType>		

	<xs:simpleType name="OFControllerRoleType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="master"/>
			<xs:enumeration value="slave"/>
			<xs:enumeration value="equal"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="OFControllerProtocolType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="tcp"/>
			<xs:enumeration value="tls"/>
		</xs:restriction>
	</xs:simpleType>			

	<xs:complexType name="OFLogicalSwitchResourceListType">
		<xs:sequence>
			<xs:element name="port" type="OFConfigID" maxOccurs="unbounded"  minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>

    <xs:complexType name="OFPortType">
        <xs:sequence>
            <xs:element name="resource-id" type="OFConfigID"/>
            <xs:element name="configuration" type="OFPortConfigurationType"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="OFPortConfigurationType">
        <xs:sequence>
            <xs:element name="admin-state" type="OFPortStateOptionsType"/>
            <xs:element name="no-receive" type="xs:boolean"/>
            <xs:element name="no-forward" type="xs:boolean"/>
            <xs:element name="no-packet-in" type="xs:boolean"/>
        </xs:sequence>
    </xs:complexType>

    <xs:simpleType name="OFPortStateOptionsType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="up"/>
            <xs:enumeration value="down"/>
        </xs:restriction>
    </xs:simpleType>

  <xs:simpleType name="ip-address">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="ipv4-address">
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="ipv6-address">
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
    <xs:simpleType name="ipv4-address">
        <xs:restriction base="xs:string">
        <xs:pattern value="(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(%[\p{N}\p{L}]+)?"/>
        </xs:restriction>
    </xs:simpleType>
  <xs:simpleType name="ipv6-address">
    <xs:restriction base="xs:string">
    <xs:pattern value="(((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))(%[\p{N}\p{L}]+)?)|((([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(%.+)?)"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>