dhodovsk / source-git / pacemaker

Forked from source-git/pacemaker 3 years ago
Clone
Blob Blame History Raw
<?xml version="1.0" encoding="UTF-8"?>
<!-- just as nvset-2.9.rng, but allows for instantiated @name restrictions -->
<grammar xmlns="http://relaxng.org/ns/structure/1.0" 
         datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  <start>
    <ref name="element-nvset"/>
  </start>

  <!-- nvpair/@name:
       * generic string by default, parent grammar may want to prohibit
         enumerated names -->
  <define name="element-nvset.name">
    <attribute name="name">
      <text/>
    </attribute>
  </define>

  <!-- nvpair/@name:
       * defer element-nvset.name grammar item
       nvpair/@value:
       generic string by default, parent grammar may want to restrict
       enumerated pairs (i.e. related to @name) at once -->
  <define name="element-nvset.name-value">
    <ref name="element-nvset.name"/>
    <optional>
      <attribute name="value"><text/></attribute>
    </optional>
  </define>

  <define name="element-nvset">
   <choice>
   <attribute name="id-ref"><data type="IDREF"/></attribute>
   <group>
    <attribute name="id"><data type="ID"/></attribute>
    <interleave>
      <optional>
        <externalRef href="rule-2.9.rng"/>
      </optional>
        <zeroOrMore>
          <element name="nvpair">
            <choice>
              <group>
                <attribute name="id-ref"><data type="IDREF"/></attribute>
                <optional>
                  <attribute name="name"><text/></attribute>
                </optional>
              </group>
              <group>
                <attribute name="id"><data type="ID"/></attribute>
                <ref name="element-nvset.name-value"/>
              </group>
            </choice>
          </element>
        </zeroOrMore>
      <optional>
        <externalRef href="score.rng"/>
      </optional>
    </interleave>
   </group>
   </choice>
  </define>

</grammar>