<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  <define name="nsList">
    <list>
      <zeroOrMore>
        <data type="NCName"/>
      </zeroOrMore>
    </list>
  </define>
  <define name="qnameList">
    <list>
      <zeroOrMore>
        <choice>
          <data type="QName"/>
          <data type="string">
            <param name="pattern">\i\c*:\*</param>
          </data>
        </choice>
      </zeroOrMore>
    </list>
  </define>
  <start>
    <element>
      <anyName/>
      <optional>
        <attribute name="mc:Ignorable">
          <ref name="nsList"/>
        </attribute>
      </optional>
      <optional>
        <attribute name="mc:ProcessContent">
          <ref name="qnameList"/>
        </attribute>
      </optional>
      <optional>
        <attribute name="mc:PreserveElements">
          <ref name="qnameList"/>
        </attribute>
      </optional>
      <optional>
        <attribute name="mc:PreserveAttributes">
          <ref name="qnameList"/>
        </attribute>
      </optional>
      <optional>
        <attribute name="mc:MustUnderstand">
          <ref name="nsList"/>
        </attribute>
      </optional>
    </element>
  </start>
</grammar>
