<grammar
ns="urn:ietf:params:xml:ns:yang:yin:1"
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
xmlns:dc="http://purl.org/dc/terms"
xmlns="http://relaxng.org/ns/structure/1.0">
<start>The document element may be either "module" or "submodule.
<choice>
<ref name="module-stmt"/>
<ref name="submodule-stmt"/>
</choice>
</start>
The pattern is referenced by:
<define name="module-stmt">
<element name="module">
<attribute name="name">
<ref name="identifier"/>
</attribute>
<ref name="module-header-stmts"/>
<ref name="linkage-stmts"/>
<ref name="meta-stmts"/>
<ref name="revision-stmts"/>
<ref name="body-stmts"/>
</element>
</define>
The pattern is referenced by:
<define name="submodule-stmt">
<element name="submodule">
<attribute name="name">
<ref name="identifier"/>
</attribute>
<ref name="submodule-header-stmts"/>
<ref name="linkage-stmts"/>
<ref name="meta-stmts"/>
<ref name="revision-stmts"/>
<ref name="body-stmts"/>
</element>
</define>
The pattern is referenced by:
<define name="module-header-stmts">
<interleave>
<optional>
<ref name="yang-version-stmt"/>
</optional>
<ref name="namespace-stmt"/>
<ref name="prefix-stmt"/>
</interleave>
</define>
The pattern is referenced by:
<define name="submodule-header-stmts">
<interleave>
<optional>
<ref name="yang-version-stmt"/>
</optional>
<ref name="belongs-to-stmt"/>
</interleave>
</define>
The pattern is referenced by:
<define name="meta-stmts">
<interleave>
<optional>
<ref name="organization-stmt"/>
</optional>
<optional>
<ref name="contact-stmt"/>
</optional>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
</interleave>
</define>
The pattern is referenced by:
<define name="linkage-stmts">
<zeroOrMore>
<choice>
<ref name="import-stmt"/>
<ref name="include-stmt"/>
</choice>
</zeroOrMore>
</define>
The pattern is referenced by:
<define name="revision-stmts">
<zeroOrMore>
<ref name="revision-stmt"/>
</zeroOrMore>
</define>
The pattern is referenced by:
<define name="body-stmts">
<zeroOrMore>
<choice>
<ref name="feature-stmt"/>
<ref name="identity-stmt"/>
<ref name="extension-stmt"/>
<ref name="typedef-stmt"/>
<ref name="grouping-stmt"/>
<ref name="data-def-stmt"/>
<ref name="rpc-stmt"/>
<ref name="notification-stmt"/>
</choice>
</zeroOrMore>
</define>
The pattern is referenced by:
<define name="feature-stmt">
<element name="feature">
<attribute name="name">
<ref name="identifier"/>
</attribute>
<zeroOrMore>
<ref name="if-feature-stmt"/>
</zeroOrMore>
<optional>
<ref name="status-stmt"/>
</optional>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
</element>
</define>
The pattern is referenced by:
<define name="if-feature-stmt">
<element name="if-feature">
<attribute name="name">
<ref name="identifier"/>
</attribute>
</element>
</define>
The pattern is referenced by:
<define name="identity-stmt">
<element name="identity">
<attribute name="name">
<ref name="identifier"/>
</attribute>
<optional>
<ref name="base-stmt"/>
</optional>
</element>
</define>
The pattern is referenced by:
<define name="base-stmt">
<element name="base">
<attribute name="name">
<ref name="identifier-ref"/>
</attribute>
</element>
</define>
The pattern is referenced by:
<define name="data-def-stmt">
<choice>
<ref name="container-stmt"/>
<ref name="leaf-stmt"/>
<ref name="leaf-list-stmt"/>
<ref name="list-stmt"/>
<ref name="choice-stmt"/>
<ref name="anyxml-stmt"/>
<ref name="uses-stmt"/>
<ref name="augment-stmt"/>
</choice>
</define>
The pattern is referenced by:
<define name="case-data-def-stmt">
<choice>
<ref name="container-stmt"/>
<ref name="leaf-stmt"/>
<ref name="leaf-list-stmt"/>
<ref name="list-stmt"/>
<ref name="anyxml-stmt"/>
<ref name="uses-stmt"/>
<ref name="augment-stmt"/>
</choice>
</define>
The pattern is referenced by:
<define name="yang-version-stmt">
<element name="yang-version">
<attribute name="value">
<value>1</value>
</attribute>
</element>
</define>
The pattern is referenced by:
<define name="import-stmt">
<element name="import">
<attribute name="module">
<ref name="identifier"/>
</attribute>
<ref name="prefix-stmt"/>
</element>
</define>
The pattern is referenced by:
<define name="include-stmt">
<element name="include">
<attribute name="module">
<ref name="identifier"/>
</attribute>
</element>
</define>
The pattern is referenced by:
<define name="namespace-stmt">
<element name="namespace">
<attribute name="uri">
<data type="anyURI"/>
</attribute>
</element>
</define>
The pattern is referenced by:
<define name="prefix-stmt">
<element name="prefix">
<attribute name="value">
<ref name="identifier"/>
</attribute>
</element>
</define>
The pattern is referenced by:
<define name="belongs-to-stmt">
<element name="belongs-to">
<attribute name="module">
<ref name="identifier"/>
</attribute>
<ref name="prefix-stmt"/>
</element>
</define>
The pattern is referenced by:
<define name="organization-stmt">
<element name="organization">
<element name="info">
<text/>
</element>
</element>
</define>
The pattern is referenced by:
<define name="contact-stmt">
<element name="contact">
<element name="info">
<text/>
</element>
</element>
</define>
The pattern is referenced by:
<define name="description-stmt">
<element name="description">
<element name="text">
<text/>
</element>
</element>
</define>
The pattern is referenced by:
<define name="reference-stmt">
<element name="reference">
<attribute name="info">
<data type="string"/>
</attribute>
</element>
</define>
The pattern is referenced by:
<define name="units-stmt">
<element name="units">
<attribute name="name">
<data type="string"/>
</attribute>
</element>
</define>
The pattern is referenced by:
<define name="revision-stmt">
<element name="revision">
<attribute name="date">
<data type="date"/>
</attribute>
<optional>
<ref name="description-stmt"/>
</optional>
</element>
</define>
The pattern is referenced by:
<define name="extension-stmt">
<element name="extension">
<attribute name="name">
<ref name="identifier"/>
</attribute>
<optional>
<ref name="argument-stmt"/>
</optional>
<optional>
<ref name="status-stmt"/>
</optional>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
</element>
</define>
The pattern is referenced by:
<define name="argument-stmt">
<element name="argument">
<attribute name="name">
<ref name="identifier"/>
</attribute>
<optional>
<ref name="yin-element-stmt"/>
</optional>
</element>
</define>
The pattern is referenced by:
<define name="yin-element-stmt">
<element name="yin-element">
<attribute name="value">
<data type="boolean"/>
</attribute>
</element>
</define>
The pattern is referenced by:
<define name="typedef-stmt">
<element name="typedef">
<attribute name="name">
<ref name="identifier"/>
</attribute>
<interleave>
<ref name="type-stmt"/>
<optional>
<ref name="units-stmt"/>
</optional>
<optional>
<ref name="default-stmt"/>
</optional>
<optional>
<ref name="status-stmt"/>
</optional>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
</interleave>
</element>
</define>
The pattern is referenced by:
<define name="type-stmt">
<element name="type">
<choice>
<group>
<attribute name="name">
<ref name="identifier-ref"/>
</attribute>
<choice>
<ref name="range-stmt"/>
<interleave>
<ref name="length-stmt"/>
<ref name="pattern-stmts"/>
</interleave>
</choice>
</group>
<ref name="numeric-type"/>
<ref name="string-type"/>
<ref name="enumeration-type"/>
<ref name="bits-type"/>
<ref name="binary-type"/>
<ref name="leafref-type"/>
<ref name="identityref-type"/>
<ref name="union-type"/>
<ref name="instance-identifier-type"/>
</choice>
</element>
</define>
The pattern is referenced by:
<define name="numeric-type">
<attribute name="name">
<choice>
<value>int8</value>
<value>int16</value>
<value>int32</value>
<value>int64</value>
<value>uint8</value>
<value>uint16</value>
<value>uint32</value>
<value>uint64</value>
<value>float32</value>
<value>float64</value>
</choice>
</attribute>
<ref name="range-stmt"/>
</define>
The pattern is referenced by:
<define name="range-stmt">
<optional>
<element name="range">
<attribute name="value">
<ref name="range-expr"/>
</attribute>
<interleave>
<optional>
<ref name="error-message-stmt"/>
</optional>
<optional>
<ref name="error-app-tag-stmt"/>
</optional>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
</interleave>
</element>
</optional>
</define>
The pattern is referenced by:
<define name="string-type">
<attribute name="name">
<value>string</value>
</attribute>
<interleave>
<ref name="length-stmt"/>
<ref name="pattern-stmts"/>
</interleave>
</define>
The pattern is referenced by:
<define name="length-stmt">
<optional>
<element name="length">
<attribute name="value">
<ref name="length-expr"/>
</attribute>
<interleave>
<optional>
<ref name="error-message-stmt"/>
</optional>
<optional>
<ref name="error-app-tag-stmt"/>
</optional>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
</interleave>
</element>
</optional>
</define>
The pattern is referenced by:
<define name="pattern-stmts">
<zeroOrMore>
<element name="pattern">
<attribute name="value">
<data type="string"/>
</attribute>
<interleave>
<optional>
<ref name="error-message-stmt"/>
</optional>
<optional>
<ref name="error-app-tag-stmt"/>
</optional>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
</interleave>
</element>
</zeroOrMore>
</define>
The pattern is referenced by:
<define name="default-stmt">
<element name="default">
<attribute name="value">
<data type="string"/>
</attribute>
</element>
</define>
The pattern is referenced by:
<define name="enumeration-type">
<attribute name="name">
<value>enumeration</value>
</attribute>
<oneOrMore>
<ref name="enum-stmt"/>
</oneOrMore>
</define>
The pattern is referenced by:
<define name="enum-stmt">
<element name="enum">
<attribute name="name">
<ref name="identifier"/>
</attribute>
<interleave>
<optional>
<ref name="value-stmt"/>
</optional>
<optional>
<ref name="status-stmt"/>
</optional>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
</interleave>
</element>
</define>
The pattern is referenced by:
<define name="bits-type">
<attribute name="name">
<value>bits</value>
</attribute>
<oneOrMore>
<ref name="bit-stmt"/>
</oneOrMore>
</define>
The pattern is referenced by:
<define name="bit-stmt">
<element name="bit">
<attribute name="name">
<ref name="identifier"/>
</attribute>
<interleave>
<optional>
<ref name="position-stmt"/>
</optional>
<optional>
<ref name="status-stmt"/>
</optional>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
</interleave>
</element>
</define>
The pattern is referenced by:
<define name="position-stmt">
<element name="position">
<attribute name="value">
<data type="nonNegativeInteger"/>
</attribute>
</element>
</define>
The pattern is referenced by:
<define name="binary-type">
<attribute name="name">
<value>binary</value>
</attribute>
<optional>
<ref name="length-stmt"/>
</optional>
</define>
The pattern is referenced by:
<define name="leafref-type">
<attribute name="name">
<value>leafref</value>
</attribute>
<interleave>
<element name="path">
<attribute name="value">
<ref name="path-arg"/>
</attribute>
</element>
<optional>
<ref name="require-instance-element"/>
</optional>
</interleave>
</define>
The pattern is referenced by:
<define name="require-instance-element">
<element name="require-instance">
<data type="boolean"/>
</element>
</define>
The pattern is referenced by:
<define name="identityref-type">
<attribute name="name">
<value>identityref</value>
</attribute>
<ref name="base-stmt"/>
</define>
The pattern is referenced by:
<define name="union-type">
<attribute name="name">
<value>union</value>
</attribute>
<oneOrMore>
<ref name="type-stmt"/>
</oneOrMore>
</define>
The pattern is referenced by:
<define name="instance-identifier-type">
<attribute name="name">
<value>instance-identifier</value>
</attribute>
<optional>
<ref name="require-instance-element"/>
</optional>
</define>
The pattern is referenced by:
<define name="status-stmt">
<element name="status">
<attribute name="value">
<ref name="status-arg"/>
</attribute>
</element>
</define>
The pattern is referenced by:
<define name="status-arg">
<choice>
<value>current</value>
<value>obsolete</value>
<value>deprecated</value>
</choice>
</define>
The pattern is referenced by:
<define name="config-stmt">
<element name="config">
<attribute name="value">
<data type="boolean"/>
</attribute>
</element>
</define>
The pattern is referenced by:
<define name="mandatory-stmt">
<element name="mandatory">
<attribute name="value">
<data type="boolean"/>
</attribute>
</element>
</define>
The pattern is referenced by:
<define name="presence-stmt">
<element name="presence">
<attribute name="value">
<data type="string"/>
</attribute>
</element>
</define>
The pattern is referenced by:
<define name="ordered-by-stmt">
<element name="ordered-by">
<attribute name="value">
<ref name="ordered-by-arg"/>
</attribute>
</element>
</define>
The pattern is referenced by:
<define name="ordered-by-arg">
<choice>
<value>user</value>
<value>system</value>
</choice>
</define>
The pattern is referenced by:
<define name="must-stmt">
<element name="must">
<attribute name="condition">
<data type="string"/>
</attribute>
<interleave>
<optional>
<ref name="error-message-stmt"/>
</optional>
<optional>
<ref name="error-app-tag-stmt"/>
</optional>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
</interleave>
</element>
</define>
The pattern is referenced by:
<define name="error-message-stmt">
<element name="error-message">
<element name="value">
<text/>
</element>
</element>
</define>
The pattern is referenced by:
<define name="error-app-tag-stmt">
<element name="error-app-tag">
<attribute name="value">
<data type="string"/>
</attribute>
</element>
</define>
The pattern is referenced by:
<define name="min-elements-stmt">
<element name="min-elements">
<attribute name="value">
<data type="nonNegativeInteger"/>
</attribute>
</element>
</define>
The pattern is referenced by:
<define name="max-elements-stmt">
<element name="max-elements">
<attribute name="value">
<choice>
<value>unbounded</value>
<data type="positiveInteger"/>
</choice>
</attribute>
</element>
</define>
The pattern is referenced by:
<define name="value-stmt">
<element name="value">
<attribute name="value">
<data type="integer"/>
</attribute>
</element>
</define>
The pattern is referenced by:
<define name="grouping-stmt">
<element name="grouping">
<attribute name="name">
<ref name="identifier"/>
</attribute>
<interleave>
<optional>
<ref name="status-stmt"/>
</optional>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
<zeroOrMore>
<choice>
<ref name="typedef-stmt"/>
<ref name="grouping-stmt"/>
<ref name="data-def-stmt"/>
</choice>
</zeroOrMore>
</interleave>
</element>
</define>
The pattern is referenced by:
<define name="container-stmt">
<element name="container">
<attribute name="name">
<ref name="identifier"/>
</attribute>
<interleave>
<optional>
<ref name="when-stmt"/>
</optional>
<zeroOrMore>
<ref name="if-feature-stmt"/>
</zeroOrMore>
<zeroOrMore>
<ref name="must-stmt"/>
</zeroOrMore>
<optional>
<ref name="presence-stmt"/>
</optional>
<optional>
<ref name="config-stmt"/>
</optional>
<optional>
<ref name="status-stmt"/>
</optional>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
<zeroOrMore>
<choice>
<ref name="typedef-stmt"/>
<ref name="grouping-stmt"/>
<ref name="data-def-stmt"/>
</choice>
</zeroOrMore>
</interleave>
</element>
</define>
The pattern is referenced by:
<define name="leaf-stmt">
<element name="leaf">
<attribute name="name">
<ref name="identifier"/>
</attribute>
<interleave>
<optional>
<ref name="when-stmt"/>
</optional>
<zeroOrMore>
<ref name="if-feature-stmt"/>
</zeroOrMore>
<ref name="type-stmt"/>
<optional>
<ref name="units-stmt"/>
</optional>
<zeroOrMore>
<ref name="must-stmt"/>
</zeroOrMore>
<optional>
<ref name="default-stmt"/>
</optional>
<optional>
<ref name="config-stmt"/>
</optional>
<optional>
<ref name="mandatory-stmt"/>
</optional>
<optional>
<ref name="status-stmt"/>
</optional>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
</interleave>
</element>
</define>
The pattern is referenced by:
<define name="leaf-list-stmt">
<element name="leaf-list">
<attribute name="name">
<ref name="identifier"/>
</attribute>
<interleave>
<optional>
<ref name="when-stmt"/>
</optional>
<zeroOrMore>
<ref name="if-feature-stmt"/>
</zeroOrMore>
<ref name="type-stmt"/>
<optional>
<ref name="units-stmt"/>
</optional>
<zeroOrMore>
<ref name="must-stmt"/>
</zeroOrMore>
<optional>
<ref name="config-stmt"/>
</optional>
<optional>
<ref name="min-elements-stmt"/>
</optional>
<optional>
<ref name="max-elements-stmt"/>
</optional>
<optional>
<ref name="ordered-by-stmt"/>
</optional>
<optional>
<ref name="status-stmt"/>
</optional>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
</interleave>
</element>
</define>
The pattern is referenced by:
<define name="list-stmt">
<element name="list">
<attribute name="name">
<ref name="identifier"/>
</attribute>
<interleave>
<optional>
<ref name="when-stmt"/>
</optional>
<zeroOrMore>
<ref name="if-feature-stmt"/>
</zeroOrMore>
<zeroOrMore>
<ref name="must-stmt"/>
</zeroOrMore>
<optional>
<ref name="key-stmt"/>
</optional>
<zeroOrMore>
<ref name="unique-stmt"/>
</zeroOrMore>
<optional>
<ref name="config-stmt"/>
</optional>
<optional>
<ref name="min-elements-stmt"/>
</optional>
<optional>
<ref name="max-elements-stmt"/>
</optional>
<optional>
<ref name="ordered-by-stmt"/>
</optional>
<optional>
<ref name="status-stmt"/>
</optional>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
<zeroOrMore>
<choice>
<ref name="typedef-stmt"/>
<ref name="grouping-stmt"/>
</choice>
</zeroOrMore>
<oneOrMore>
<ref name="data-def-stmt"/>
</oneOrMore>
</interleave>
</element>
</define>
The pattern is referenced by:
<define name="key-stmt">
<element name="key">
<attribute name="value">
<list>
<oneOrMore>
<ref name="identifier"/>
</oneOrMore>
</list>
</attribute>
</element>
</define>
The pattern is referenced by:
<define name="unique-stmt">
<element name="unique">
<attribute name="tag">
<list>
<oneOrMore>
<ref name="descendant-schema-nodeid"/>
</oneOrMore>
</list>
</attribute>
</element>
</define>
The pattern is referenced by:
<define name="choice-stmt">
<element name="choice">
<attribute name="name">
<ref name="identifier"/>
</attribute>
<interleave>
<optional>
<ref name="when-stmt"/>
</optional>
<zeroOrMore>
<ref name="if-feature-stmt"/>
</zeroOrMore>
<optional>
<ref name="default-stmt"/>
</optional>
<optional>
<ref name="config-stmt"/>
</optional>
<optional>
<ref name="mandatory-stmt"/>
</optional>
<optional>
<ref name="status-stmt"/>
</optional>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
<zeroOrMore>
<choice>
<ref name="short-case-stmt"/>
<ref name="case-stmt"/>
</choice>
</zeroOrMore>
</interleave>
</element>
</define>
The pattern is referenced by:
<define name="short-case-stmt">
<choice>
<ref name="container-stmt"/>
<ref name="leaf-stmt"/>
<ref name="leaf-list-stmt"/>
<ref name="list-stmt"/>
<ref name="anyxml-stmt"/>
</choice>
</define>
The pattern is referenced by:
<define name="case-stmt">
<element name="case">
<attribute name="name">
<ref name="identifier"/>
</attribute>
<interleave>
<optional>
<ref name="when-stmt"/>
</optional>
<zeroOrMore>
<ref name="if-feature-stmt"/>
</zeroOrMore>
<optional>
<ref name="status-stmt"/>
</optional>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
<zeroOrMore>
<ref name="case-data-def-stmt"/>
</zeroOrMore>
</interleave>
</element>
</define>
The pattern is referenced by:
<define name="anyxml-stmt">
<element name="anyxml">
<attribute name="name">
<ref name="identifier"/>
</attribute>
<interleave>
<optional>
<ref name="when-stmt"/>
</optional>
<zeroOrMore>
<ref name="if-feature-stmt"/>
</zeroOrMore>
<zeroOrMore>
<ref name="must-stmt"/>
</zeroOrMore>
<optional>
<ref name="config-stmt"/>
</optional>
<optional>
<ref name="mandatory-stmt"/>
</optional>
<optional>
<ref name="status-stmt"/>
</optional>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
</interleave>
</element>
</define>
The pattern is referenced by:
<define name="uses-stmt">
<element name="uses">
<attribute name="name">
<ref name="identifier-ref"/>
</attribute>
<interleave>
<optional>
<ref name="when-stmt"/>
</optional>
<zeroOrMore>
<ref name="if-feature-stmt"/>
</zeroOrMore>
<optional>
<ref name="status-stmt"/>
</optional>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
<zeroOrMore>
<ref name="refine-stmt"/>
</zeroOrMore>
<zeroOrMore>
<ref name="uses-augment-stmt"/>
</zeroOrMore>
</interleave>
</element>
</define>
The pattern is referenced by:
<define name="refine-stmt">
<element name="refine">
<attribute name="target-node">
<ref name="descendant-schema-nodeid"/>
</attribute>
<choice>
<ref name="refine-container-stmts"/>
<ref name="refine-leaf-stmts"/>
<ref name="refine-leaf-list-stmts"/>
<ref name="refine-list-stmts"/>
<ref name="refine-choice-stmts"/>
<ref name="refine-case-stmts"/>
<ref name="refine-anyxml-stmts"/>
</choice>
</element>
</define>
The pattern is referenced by:
<define name="refine-container-stmts">
<interleave>
<zeroOrMore>
<ref name="must-stmt"/>
</zeroOrMore>
<optional>
<ref name="presence-stmt"/>
</optional>
<optional>
<ref name="config-stmt"/>
</optional>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
</interleave>
</define>
The pattern is referenced by:
<define name="refine-leaf-stmts">
<interleave>
<zeroOrMore>
<ref name="must-stmt"/>
</zeroOrMore>
<optional>
<ref name="default-stmt"/>
</optional>
<optional>
<ref name="config-stmt"/>
</optional>
<optional>
<ref name="mandatory-stmt"/>
</optional>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
</interleave>
</define>
The pattern is referenced by:
<define name="refine-leaf-list-stmts">
<interleave>
<zeroOrMore>
<ref name="must-stmt"/>
</zeroOrMore>
<optional>
<ref name="config-stmt"/>
</optional>
<optional>
<ref name="min-elements-stmt"/>
</optional>
<optional>
<ref name="max-elements-stmt"/>
</optional>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
</interleave>
</define>
The pattern is referenced by:
<define name="refine-list-stmts">
<interleave>
<zeroOrMore>
<ref name="must-stmt"/>
</zeroOrMore>
<optional>
<ref name="config-stmt"/>
</optional>
<optional>
<ref name="min-elements-stmt"/>
</optional>
<optional>
<ref name="max-elements-stmt"/>
</optional>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
</interleave>
</define>
The pattern is referenced by:
<define name="refine-choice-stmts">
<interleave>
<optional>
<ref name="default-stmt"/>
</optional>
<optional>
<ref name="config-stmt"/>
</optional>
<optional>
<ref name="mandatory-stmt"/>
</optional>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
</interleave>
</define>
The pattern is referenced by:
<define name="refine-case-stmts">
<interleave>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
</interleave>
</define>
The pattern is referenced by:
<define name="refine-anyxml-stmts">
<interleave>
<optional>
<ref name="config-stmt"/>
</optional>
<optional>
<ref name="mandatory-stmt"/>
</optional>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
</interleave>
</define>
The pattern is referenced by:
<define name="uses-augment-stmt">
<element name="augment">
<attribute name="target-node">
<ref name="descendant-schema-nodeid"/>
</attribute>
<interleave>
<optional>
<ref name="when-stmt"/>
</optional>
<zeroOrMore>
<ref name="if-feature-stmt"/>
</zeroOrMore>
<optional>
<ref name="status-stmt"/>
</optional>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
<oneOrMore>
<choice>
<ref name="data-def-stmt"/>
<ref name="case-stmt"/>
</choice>
</oneOrMore>
</interleave>
</element>
</define>
The pattern is referenced by:
<define name="augment-stmt">
<element name="augment">
<attribute name="target-node">
<choice>
<ref name="absolute-schema-nodeid"/>
</choice>
</attribute>
<interleave>
<optional>
<ref name="when-stmt"/>
</optional>
<zeroOrMore>
<ref name="if-feature-stmt"/>
</zeroOrMore>
<optional>
<ref name="status-stmt"/>
</optional>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
<oneOrMore>
<choice>
<ref name="data-def-stmt"/>
<ref name="case-stmt"/>
</choice>
</oneOrMore>
</interleave>
</element>
</define>
The pattern is referenced by:
<define name="when-stmt">
<element name="when">
<attribute name="condition">
<data type="string"/>
</attribute>
</element>
</define>
The pattern is referenced by:
<define name="rpc-stmt">
<element name="rpc">
<attribute name="name">
<ref name="identifier"/>
</attribute>
<interleave>
<zeroOrMore>
<ref name="if-feature-stmt"/>
</zeroOrMore>
<optional>
<ref name="status-stmt"/>
</optional>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
<zeroOrMore>
<choice>
<ref name="typedef-stmt"/>
<ref name="grouping-stmt"/>
</choice>
</zeroOrMore>
</interleave>
<optional>
<ref name="input-stmt"/>
</optional>
<optional>
<ref name="output-stmt"/>
</optional>
</element>
</define>
The pattern is referenced by:
<define name="input-stmt">
<element name="input">
<interleave>
<zeroOrMore>
<choice>
<ref name="typedef-stmt"/>
<ref name="grouping-stmt"/>
</choice>
</zeroOrMore>
<oneOrMore>
<ref name="data-def-stmt"/>
</oneOrMore>
</interleave>
</element>
</define>
The pattern is referenced by:
<define name="output-stmt">
<element name="output">
<interleave>
<zeroOrMore>
<choice>
<ref name="typedef-stmt"/>
<ref name="grouping-stmt"/>
</choice>
</zeroOrMore>
<oneOrMore>
<ref name="data-def-stmt"/>
</oneOrMore>
</interleave>
</element>
</define>
The pattern is referenced by:
<define name="notification-stmt">
<element name="notification">
<attribute name="name">
<ref name="identifier"/>
</attribute>
<interleave>
<zeroOrMore>
<ref name="if-feature-stmt"/>
</zeroOrMore>
<optional>
<ref name="status-stmt"/>
</optional>
<optional>
<ref name="description-stmt"/>
</optional>
<optional>
<ref name="reference-stmt"/>
</optional>
<zeroOrMore>
<choice>
<ref name="typedef-stmt"/>
<ref name="grouping-stmt"/>
<ref name="data-def-stmt"/>
</choice>
</zeroOrMore>
</interleave>
</element>
</define>
The pattern is referenced by:
<define name="identifier">
<data type="NCName">
<param name="pattern">[_A-Za-z][_-A-Za-z0-9.]*</param>
</data>
</define>
The pattern is referenced by:
<define name="identifier-ref">
<data type="Name">
<param name="pattern">([_A-Za-z][_-A-Za-z0-9.]*:)?[_A-Za-z][_-A-Za-z0-9.]*</param>
</data>
</define>
The pattern is referenced by:
<define name="range-expr">
<data type="string">
<param name="pattern">s*(-INF|INF|min|max|-?(0|[1-9][0-9]*)(.[0-9]+(E[-+]?[0-9]+)?)?)(s*..s*(-INF|INF|min|max|-?(0|[1-9][0-9]*)(.[0-9]+(E[-+]?[0-9]+)?)?))?(s*|s*(-INF|INF|min|max|-?(0|[1-9][0-9]*)(.[0-9]+(E[-+]?[0-9]+)?)?)(s*..s*(-INF|INF|min|max|-?(0|[1-9][0-9]*)(.[0-9]+(E[-+]?[0-9]+)?)?))?)*s*</param>
</data>
</define>
The pattern is referenced by:
<define name="length-expr">
<data type="string">
<param name="pattern">s*(min|max|(0|[1-9][0-9]*))(s*..s*(min|max|(0|[1-9][0-9]*)))?(s*|s*(min|max|(0|[1-9][0-9]*))(s*..s*(min|max|(0|[1-9][0-9]*)))?)*s*</param>
</data>
</define>
The pattern is referenced by:
<define name="path-arg">
<data type="string">
<param name="pattern">((/([_A-Za-z][._-A-Za-z0-9]*:)?[_A-Za-z][._-A-Za-z0-9]*([s*([_A-Za-z][._-A-Za-z0-9]*:)?[_A-Za-z][._-A-Za-z0-9]*s*=s*([$]this/(../)+(([_A-Za-z][._-A-Za-z0-9]*:)?[_A-Za-z][._-A-Za-z0-9]*/)*([_A-Za-z][._-A-Za-z0-9]*:)?[_A-Za-z][._-A-Za-z0-9]*)s*])*)+|(../)*([_A-Za-z][._-A-Za-z0-9]*:)?[_A-Za-z][._-A-Za-z0-9]*([s*([_A-Za-z][._-A-Za-z0-9]*:)?[_A-Za-z][._-A-Za-z0-9]*s*=s*([$]this/(../)+(([_A-Za-z][._-A-Za-z0-9]*:)?[_A-Za-z][._-A-Za-z0-9]*/)*([_A-Za-z][._-A-Za-z0-9]*:)?[_A-Za-z][._-A-Za-z0-9]*)s*])?(/([_A-Za-z][._-A-Za-z0-9]*:)?[_A-Za-z][._-A-Za-z0-9]*([s*([_A-Za-z][._-A-Za-z0-9]*:)?[_A-Za-z][._-A-Za-z0-9]*s*=s*([$]this/(../)+(([_A-Za-z][._-A-Za-z0-9]*:)?[_A-Za-z][._-A-Za-z0-9]*/)*([_A-Za-z][._-A-Za-z0-9]*:)?[_A-Za-z][._-A-Za-z0-9]*)s*])*)+)</param>
</data>
</define>
The pattern is referenced by:
<define name="absolute-schema-nodeid">
<data type="string">
<param name="pattern">(/([_A-Za-z][._-A-Za-z0-9]*:)?[_A-Za-z][._-A-Za-z0-9]*)+</param>
</data>
</define>
The pattern is referenced by:
<define name="descendant-schema-nodeid">
<data type="string">
<param name="pattern">([_A-Za-z][._-A-Za-z0-9]*:)?[_A-Za-z][._-A-Za-z0-9]*(/([_A-Za-z][._-A-Za-z0-9]*:)?[_A-Za-z][._-A-Za-z0-9]*)*</param>
</data>
</define>