adding he_ipv6 schema
This commit is contained in:
parent
9423997dca
commit
8567ee0965
54
schema/lib/elements/he_ipv6.xsd
Normal file
54
schema/lib/elements/he_ipv6.xsd
Normal file
@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified">
|
||||
|
||||
<xs:include schemaLocation="../types/net.xsd"/>
|
||||
<xs:include schemaLocation="../types/he_ipv6.xsd"/>
|
||||
|
||||
<xs:complexType name="e_he_ipv6_cred">
|
||||
<xs:all>
|
||||
<xs:element name="user" type="xs:token" minOccurs="1"/>
|
||||
<xs:element name="updateKey" type="xs:token" minOccurs="1"/>
|
||||
</xs:all>
|
||||
<xs:attribute name="id" type="xs:ID" use="required"/>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="e_he_ipv6_tunnel">
|
||||
<xs:all>
|
||||
<xs:element name="server" type="t_net_addr_ip4"/>
|
||||
<xs:element name="allocs">
|
||||
<xs:complexType>
|
||||
<xs:sequence minOccurs="1">
|
||||
<!-- HE only allocates a single /64 and, upon request, a single /48 per tunnel. -->
|
||||
<xs:element name="alloc" minOccurs="1" maxOccurs="2">
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="t_net_addr_ip6">
|
||||
<xs:attribute name="prefix" type="t_he_ipv6_prefix" use="required" default="64"/>
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
<xs:unique name="uniq_alloc_prefix">
|
||||
<xs:selector xpath="alloc"/>
|
||||
<xs:field xpath="@prefix"/>
|
||||
</xs:unique>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="client" minOccurs="1" maxOccurs="1">
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="t_net_addr_ip6">
|
||||
<xs:attribute name="prefix" type="t_he_ipv6_prefix" use="required" default="64"/>
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:all>
|
||||
<xs:attribute name="id" type="xs:positiveInteger" use="required"/>
|
||||
<xs:attribute name="creds" type="xs:IDREF" use="required"/>
|
||||
</xs:complexType>
|
||||
|
||||
</xs:schema>
|
13
schema/lib/types/he_ipv6.xsd
Normal file
13
schema/lib/types/he_ipv6.xsd
Normal file
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified">
|
||||
|
||||
<xs:simpleType name="t_he_ipv6_prefix">
|
||||
<xs:restriction base="xs:positiveInteger">
|
||||
<xs:enumeration value="48"/>
|
||||
<xs:enumeration value="64"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
</xs:schema>
|
48
schema/projects/he_ipv6.xsd
Normal file
48
schema/projects/he_ipv6.xsd
Normal file
@ -0,0 +1,48 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<xs:schema targetNamespace="https://tunnelbroker.net/"
|
||||
xmlns="https://tunnelbroker.net/"
|
||||
xmlns:heIPv6="https://tunelbroker.net/"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified">
|
||||
|
||||
<xs:include schemaLocation="../lib/elements/he_ipv6.xsd"/>
|
||||
|
||||
<!-- ROOT -->
|
||||
<xs:element name="heIPv6">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="creds" minOccurs="1">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="cred" type="e_he_ipv6_cred" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="tunnels" minOccurs="1">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="tunnel" minOccurs="1" maxOccurs="unbounded" type="e_he_ipv6_tunnel">
|
||||
<xs:unique name="uniq_alloc">
|
||||
<xs:unique name="uniq_alloc_addr">
|
||||
<xs:selector xpath="heIPv6:tunnel/heIPv6:alloc"/>
|
||||
<xs:field xpath="."/>
|
||||
</xs:unique>
|
||||
</xs:unique>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:unique name="uniq_tun">
|
||||
<xs:selector xpath="heIPv6:tunnel"/>
|
||||
<xs:field xpath="@id"/>
|
||||
</xs:unique>
|
||||
</xs:element>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
<xs:unique name="uniq_addr">
|
||||
<xs:selector xpath=""/>
|
||||
<xs:field xpath=""/>
|
||||
</xs:unique>
|
||||
</xs:element>
|
||||
|
||||
</xs:schema>
|
Loading…
Reference in New Issue
Block a user