<?xml version="1.0" encoding="UTF-8"?>
<grammar ns="http://www.suse.com/1.0/yast2ns" xmlns="http://relaxng.org/ns/structure/1.0">
  <define name="scripts">
    <element name="scripts">
      <optional>
        <ref name="chroot-scripts"/>
      </optional>
      <optional>
        <ref name="post-scripts"/>
      </optional>
      <optional>
        <ref name="pre-scripts"/>
      </optional>
    </element>
  </define>
  <define name="chroot-scripts">
    <element name="chroot-scripts">
      <ref name="LIST"/>
      <oneOrMore>
        <element name="script">
          <zeroOrMore>
            <choice>
              <ref name="filename"/>
              <ref name="interpreter"/>
              <element name="location">
                <text/>
              </element>
              <ref name="source"/>
              <ref name="chrooted"/>
            </choice>
          </zeroOrMore>
        </element>
      </oneOrMore>
    </element>
  </define>
  <define name="post-scripts">
    <element name="post-scripts">
      <ref name="LIST"/>
      <oneOrMore>
        <element name="script">
          <zeroOrMore>
            <choice>
              <ref name="filename"/>
              <ref name="interpreter"/>
              <element name="location">
                <text/>
              </element>
              <ref name="source"/>
            </choice>
          </zeroOrMore>
        </element>
      </oneOrMore>
    </element>
  </define>
  <define name="pre-scripts">
    <element name="pre-scripts">
      <ref name="LIST"/>
      <oneOrMore>
        <element name="script">
          <zeroOrMore>
            <choice>
              <ref name="filename"/>
              <ref name="interpreter"/>
              <element name="location">
                <text/>
              </element>
              <ref name="source"/>
            </choice>
          </zeroOrMore>
        </element>
      </oneOrMore>
    </element>
  </define>
  <define name="init-scripts">
    <element name="init-scripts">
      <ref name="LIST"/>
      <oneOrMore>
        <element name="script">
          <zeroOrMore>
            <choice>
              <ref name="filename"/>
              <ref name="interpreter"/>
              <element name="location">
                <text/>
              </element>
              <ref name="source"/>
            </choice>
          </zeroOrMore>
        </element>
      </oneOrMore>
    </element>
  </define>
  <define name="chrooted">
    <element name="chrooted">
      <ref name="BOOLEAN"/>
    </element>
  </define>
  <define name="filename">
    <element name="filename">
      <text/>
    </element>
  </define>
  <define name="interpreter">
    <element name="interpreter">
      <text/>
    </element>
  </define>
  <define name="source">
    <element name="source">
      <text/>
    </element>
  </define>
</grammar>
