openstack-doc-tools/os_doc_tools/resources/wadl.rng

415 lines
10 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<grammar ns="" xmlns:wadl="http://wadl.dev.java.net/2009/02" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<start>
<choice>
<element name="wadl:application">
<zeroOrMore>
<ref name="doc"/>
</zeroOrMore>
<optional>
<ref name="grammars"/>
</optional>
<zeroOrMore>
<ref name="resources"/>
</zeroOrMore>
<zeroOrMore>
<choice>
<ref name="resource_type"/>
<ref name="method"/>
<ref name="representation"/>
<ref name="param"/>
</choice>
</zeroOrMore>
<ref name="foreign-attribute"/>
<!-- <ref name="foreign-element"/> -->
</element>
<ref name="resource"/>
</choice>
</start>
<define name="doc">
<element name="wadl:doc">
<optional>
<attribute name="xml:lang">
<ref name="languageTag"/>
</attribute>
</optional>
<optional>
<attribute name="title"/>
</optional>
<zeroOrMore>
<choice>
<text/>
<!-- <ref name="foreign-element"/> -->
</choice>
</zeroOrMore>
<ref name="foreign-attribute"/>
</element>
</define>
<define name="grammars">
<element name="wadl:grammars">
<zeroOrMore>
<ref name="doc"/>
</zeroOrMore>
<zeroOrMore>
<ref name="incl"/>
</zeroOrMore>
<!-- <ref name="foreign-element"/> -->
</element>
</define>
<define name="incl">
<element name="wadl:include">
<zeroOrMore>
<ref name="doc"/>
</zeroOrMore>
<attribute name="href">
<data type="anyURI"/>
</attribute>
<ref name="foreign-attribute"/>
</element>
</define>
<define name="resources">
<element name="wadl:resources">
<zeroOrMore>
<ref name="doc"/>
</zeroOrMore>
<oneOrMore>
<ref name="resource"/>
</oneOrMore>
<attribute name="base">
<data type="anyURI"/>
</attribute>
<ref name="foreign-attribute"/>
<!-- <ref name="foreign-element"/> -->
</element>
</define>
<define name="resource_type">
<element name="wadl:resource_type">
<zeroOrMore>
<ref name="doc"/>
</zeroOrMore>
<zeroOrMore>
<ref name="param"/>
</zeroOrMore>
<zeroOrMore>
<choice>
<ref name="method"/>
<ref name="resource"/>
</choice>
</zeroOrMore>
<optional>
<attribute name="id">
<data type="token"/>
</attribute>
</optional>
<!-- <ref name="foreign-element"/> -->
<ref name="foreign-attribute"/>
</element>
</define>
<define name="resource">
<element name="wadl:resource">
<zeroOrMore>
<ref name="doc"/>
</zeroOrMore>
<zeroOrMore>
<ref name="param"/>
</zeroOrMore>
<zeroOrMore>
<choice>
<ref name="method"/>
<ref name="resource"/>
</choice>
</zeroOrMore>
<optional>
<attribute name="type">
<list>
<data type="anyURI"/>
</list>
</attribute>
</optional>
<optional>
<attribute name="path"/>
</optional>
<optional>
<attribute name="id">
<data type="token"/>
</attribute>
</optional>
<optional>
<attribute name="queryType"/>
</optional>
<!-- <ref name="foreign-element"/> -->
<ref name="foreign-attribute"/>
</element>
</define>
<define name="method">
<element name="wadl:method">
<choice>
<attribute name="href">
<data type="anyURI"/>
</attribute>
<group>
<zeroOrMore>
<ref name="doc"/>
</zeroOrMore>
<optional>
<ref name="request"/>
</optional>
<zeroOrMore>
<ref name="response"/>
</zeroOrMore>
<optional>
<attribute name="id">
<data type="token"/>
</attribute>
</optional>
<attribute name="name">
<choice>
<value>DELETE</value>
<value>GET</value>
<value>HEAD</value>
<value>POST</value>
<value>PUT</value>
<data type="token"/>
</choice>
</attribute>
</group>
</choice>
<!-- <ref name="foreign-element"/> -->
<ref name="foreign-attribute"/>
</element>
</define>
<define name="request">
<element name="wadl:request">
<zeroOrMore>
<ref name="doc"/>
</zeroOrMore>
<zeroOrMore>
<ref name="param"/>
</zeroOrMore>
<zeroOrMore>
<ref name="representation"/>
</zeroOrMore>
<ref name="foreign-attribute"/>
<!-- <ref name="foreign-element"/> -->
</element>
</define>
<define name="response">
<element name="wadl:response">
<zeroOrMore>
<ref name="doc"/>
</zeroOrMore>
<zeroOrMore>
<ref name="param"/>
</zeroOrMore>
<zeroOrMore>
<ref name="representation"/>
</zeroOrMore>
<optional>
<attribute name="status">
<list>
<oneOrMore>
<data type="int"/>
</oneOrMore>
</list>
</attribute>
</optional>
<ref name="foreign-attribute"/>
<!-- <ref name="foreign-element"/> -->
</element>
</define>
<define name="representation">
<element name="wadl:representation">
<choice>
<attribute name="href">
<data type="anyURI"/>
</attribute>
<group>
<zeroOrMore>
<ref name="doc"/>
</zeroOrMore>
<zeroOrMore>
<ref name="param"/>
</zeroOrMore>
<optional>
<attribute name="id">
<data type="token"/>
</attribute>
</optional>
<optional>
<attribute name="element">
<data type="QName"/>
</attribute>
</optional>
<optional>
<attribute name="mediaType"/>
</optional>
<optional>
<attribute name="profile">
<list>
<data type="anyURI"/>
</list>
</attribute>
</optional>
</group>
</choice>
<ref name="foreign-attribute"/>
<!-- <ref name="foreign-element"/> -->
</element>
</define>
<define name="param">
<element name="wadl:param">
<choice>
<attribute name="href">
<data type="anyURI"/>
</attribute>
<group>
<zeroOrMore>
<ref name="doc"/>
</zeroOrMore>
<zeroOrMore>
<ref name="option"/>
</zeroOrMore>
<optional>
<ref name="link"/>
</optional>
<attribute name="name">
<data type="token"/>
</attribute>
<attribute name="style">
<choice>
<value>plain</value>
<value>query</value>
<value>matrix</value>
<value>header</value>
<value>template</value>
</choice>
</attribute>
<optional>
<attribute name="id">
<data type="token"/>
</attribute>
</optional>
<optional>
<attribute name="type"/>
</optional>
<optional>
<attribute name="default"/>
</optional>
<optional>
<attribute name="path"/>
</optional>
<optional>
<attribute name="required">
<data type="boolean"/>
</attribute>
</optional>
<optional>
<attribute name="repeating">
<data type="boolean"/>
</attribute>
</optional>
<optional>
<attribute name="fixed"/>
</optional>
</group>
</choice>
<!-- <ref name="foreign-element"/> -->
<ref name="foreign-attribute"/>
</element>
</define>
<define name="option">
<element name="wadl:option">
<zeroOrMore>
<ref name="doc"/>
</zeroOrMore>
<attribute name="value">
<data type="string"/>
</attribute>
<optional>
<attribute name="mediaType"/>
</optional>
<!-- <ref name="foreign-element"/> -->
<ref name="foreign-attribute"/>
</element>
</define>
<define name="link">
<element name="wadl:link">
<zeroOrMore>
<ref name="doc"/>
</zeroOrMore>
<optional>
<attribute name="resource_type">
<data type="anyURI"/>
</attribute>
</optional>
<optional>
<attribute name="rel">
<data type="token"/>
</attribute>
</optional>
<optional>
<attribute name="rev">
<data type="token"/>
</attribute>
</optional>
<!-- <ref name="foreign-element"/> -->
<ref name="foreign-attribute"/>
</element>
</define>
<define name="foreign-attribute">
<zeroOrMore>
<attribute>
<anyName>
<except>
<nsName ns="http://wadl.dev.java.net/2009/02"/>
<nsName/>
<nsName ns="http://www.w3.org/XML/1998/namespace"/>
</except>
</anyName>
</attribute>
</zeroOrMore>
</define>
<!-- <define name="foreign-element">
<zeroOrMore>
<element>
<anyName>
<except>
<nsName ns="http://wadl.dev.java.net/2009/02"/>
<nsName/>
</except>
</anyName>
<zeroOrMore>
<choice>
<attribute>
<anyName/>
</attribute>
<text/>
<ref name="any-element"/>
</choice>
</zeroOrMore>
</element>
</zeroOrMore>
</define>-->
<!-- <define name="any-element">
<zeroOrMore>
<element>
<anyName/>
<zeroOrMore>
<choice>
<attribute>
<anyName/>
</attribute>
<text/>
<ref name="any-element"/>
</choice>
</zeroOrMore>
</element>
</zeroOrMore>
</define>-->
<define name="languageTag">
<data type="string">
<param name="pattern">[A-Za-z]{1,8}(-[A-Za-z0-9]{1,8})*</param>
</data>
</define>
</grammar>