<?xml version="1.0" encoding="UTF-8"?>
<grammar ns="http://ez.no/namespaces/ezpublish3" xmlns:xhtml="http://ez.no/namespaces/ezpublish3/xhtml/" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="">
  <start>
    <element name="section">
      <zeroOrMore>
        <ref name="sectionContent"/>
      </zeroOrMore>
    </element>
  </start>
  <define name="sectionContent">
    <choice>
      <element name="section">
        <oneOrMore>
          <ref name="sectionContent"/>
        </oneOrMore>
      </element>
      <element name="paragraph">
        <ref name="paragraphContent"/>
      </element>
      <element name="header">
        <ref name="headerContent"/>
      </element>
    </choice>
  </define>
  <define name="headerContent">
    <optional>
      <attribute name="anchor_name">
        <data type="string"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="level">
        <data type="string"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <data type="string"/>
      </attribute>
    </optional>
    <text/>
  </define>
  <define name="paragraphContent">
    <optional>
      <attribute name="class">
        <data type="string"/>
      </attribute>
    </optional>
    <oneOrMore>
      <choice>
        <ref name="inlineContent"/>
        <element name="line">
          <ref name="inlineContent"/>
        </element>
        <element name="embed">
          <ref name="embedAttributes"/>
        </element>
        <element name="ol">
          <ref name="listContent"/>
        </element>
        <element name="ul">
          <ref name="listContent"/>
        </element>
        <element name="custom">
          <attribute name="name">
            <data type="string"/>
          </attribute>
        </element>
        <element name="literal">
          <optional>
            <attribute name="class">
              <data type="string"/>
            </attribute>
          </optional>
          <text/>
        </element>
        <element name="table">
          <ref name="tableContent"/>
        </element>
      </choice>
    </oneOrMore>
  </define>
  <define name="listContent">
    <optional>
      <attribute name="class">
        <data type="string"/>
      </attribute>
    </optional>
    <oneOrMore>
      <element name="li">
        <optional>
          <attribute name="class">
            <data type="string"/>
          </attribute>
        </optional>
        <oneOrMore>
          <element name="paragraph">
            <ref name="paragraphContent"/>
          </element>
        </oneOrMore>
      </element>
    </oneOrMore>
  </define>
  <define name="tableContent">
    <optional>
      <attribute name="class">
        <data type="string"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="width">
        <data type="string"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="border">
        <data type="string"/>
      </attribute>
    </optional>
    <oneOrMore>
      <element name="tr">
        <optional>
          <attribute name="class">
            <data type="string"/>
          </attribute>
        </optional>
        <choice>
          <oneOrMore>
            <element name="td">
              <ref name="tableCellContent"/>
            </element>
          </oneOrMore>
          <oneOrMore>
            <element name="th">
              <ref name="tableCellContent"/>
            </element>
          </oneOrMore>
        </choice>
      </element>
    </oneOrMore>
  </define>
  <define name="tableCellContent">
    <optional>
      <attribute name="class">
        <data type="string"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="xhtml:width">
        <data type="string"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="xhtml:colspan">
        <data type="string"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="xhtml:rowspan">
        <data type="string"/>
      </attribute>
    </optional>
    <zeroOrMore>
      <choice>
        <ref name="sectionContent"/>
        <element name="table">
          <ref name="tableContent"/>
        </element>
      </choice>
    </zeroOrMore>
  </define>
  <define name="inlineContent">
    <zeroOrMore>
      <choice>
        <text/>
        <element name="embed">
          <ref name="embedAttributes"/>
        </element>
        <element name="embed-inline">
          <ref name="embedAttributes"/>
        </element>
        <element name="strong">
          <ref name="inlineElementContent"/>
        </element>
        <element name="emphasize">
          <ref name="inlineElementContent"/>
        </element>
        <element name="link">
          <ref name="linkContent"/>
        </element>
        <element name="anchor">
          <optional>
            <attribute name="name">
              <data type="string"/>
            </attribute>
          </optional>
          <ref name="inlineContent"/>
        </element>
      </choice>
    </zeroOrMore>
  </define>
  <define name="inlineElementContent">
    <optional>
      <attribute name="class">
        <data type="string"/>
      </attribute>
    </optional>
    <ref name="inlineContent"/>
  </define>
  <define name="embedAttributes">
    <optional>
      <attribute name="id">
        <data type="string"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="object_id">
        <data type="string"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="node_id">
        <data type="string"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="show_path">
        <data type="string"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="size">
        <data type="string"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="align">
        <data type="string"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="view">
        <data type="string"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="xhtml:id">
        <data type="string"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <data type="string"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="target">
        <data type="string"/>
      </attribute>
    </optional>
  </define>
  <define name="linkContent">
    <optional>
      <attribute name="class">
        <data type="string"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="xhtml:id">
        <data type="string"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="target">
        <data type="string"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="xhtml:title">
        <data type="string"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="object_id">
        <data type="string"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="node_id">
        <data type="string"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="show_path">
        <data type="string"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="anchor_name">
        <data type="string"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="url_id">
        <data type="string"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="id">
        <data type="string"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="view">
        <data type="string"/>
      </attribute>
    </optional>
    <ref name="inlineContent"/>
  </define>
</grammar>
