<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE grammar SYSTEM "../relaxng.dtd">
<grammar ns="http://www.w3.org/2000/svg" xml:lang="en"
         xmlns="http://relaxng.org/ns/structure/1.0"
         xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
         datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">

  <a:documentation>
    SVG 1.1 Font Module
    file: svg-font.rng

    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.

    $Id: svg-font.rng,v 1.1 2003/07/15 07:11:10 dean Exp $
  </a:documentation>

  <a:documentation>
    Font

        font, font-face, glyph, missing-glyph, hkern, vkern, font-face-src,
        font-face-uri, font-face-format, font-face-name, definition-src

    This module declares markup to provide support for template.
  </a:documentation>

  <include href="svg-basic-font.rng"/>

  <a:documentation>
    font-face: Font Face Element
  </a:documentation>

  <define name="SVG.font-face.extra.class" combine="interleave">
    <optional>
      <ref name="definition-src"/>
    </optional>
  </define>

  <a:documentation>
    glyph: Glyph Element
  </a:documentation>

  <define name="SVG.glyph.class" combine="choice">
    <choice>
      <ref name="SVG.Animation.class"/>
      <ref name="SVG.Structure.class"/>
      <ref name="SVG.Conditional.class"/>
      <ref name="SVG.Image.class"/>
      <ref name="SVG.Style.class"/>
      <ref name="SVG.Shape.class"/>
      <ref name="SVG.Text.class"/>
      <ref name="SVG.Marker.class"/>
      <ref name="SVG.Profile.class"/>
      <ref name="SVG.Gradient.class"/>
      <ref name="SVG.Pattern.class"/>
      <ref name="SVG.Clip.class"/>
      <ref name="SVG.Mask.class"/>
      <ref name="SVG.Filter.class"/>
      <ref name="SVG.Cursor.class"/>
      <ref name="SVG.Hyperlink.class"/>
      <ref name="SVG.View.class"/>
      <ref name="SVG.Script.class"/>
      <ref name="SVG.Font.class"/>
    </choice>
  </define>

  <a:documentation>
    missing-glyph: Missing Glyph Element
  </a:documentation>

  <define name="SVG.missing-glyph.class" combine="choice">
    <choice>
      <ref name="SVG.Animation.class"/>
      <ref name="SVG.Structure.class"/>
      <ref name="SVG.Conditional.class"/>
      <ref name="SVG.Image.class"/>
      <ref name="SVG.Style.class"/>
      <ref name="SVG.Shape.class"/>
      <ref name="SVG.Text.class"/>
      <ref name="SVG.Marker.class"/>
      <ref name="SVG.Profile.class"/>
      <ref name="SVG.Gradient.class"/>
      <ref name="SVG.Pattern.class"/>
      <ref name="SVG.Clip.class"/>
      <ref name="SVG.Mask.class"/>
      <ref name="SVG.Filter.class"/>
      <ref name="SVG.Cursor.class"/>
      <ref name="SVG.Hyperlink.class"/>
      <ref name="SVG.View.class"/>
      <ref name="SVG.Script.class"/>
      <ref name="SVG.Font.class"/>
    </choice>
  </define>

  <a:documentation>
    font-face-uri: Font Face URI Element
  </a:documentation>

  <define name="SVG.font-face-uri.content" combine="choice">
    <zeroOrMore>
      <ref name="font-face-format"/>
    </zeroOrMore>
  </define>

  <a:documentation>
    font-face-format: Font Face Format Element
  </a:documentation>

  <define name="SVG.font-face-format.content">
    <empty/>
  </define>

  <define name="font-face-format">
    <element name="font-face-format">
      <ref name="attlist.font-face-format"/>
      <ref name="SVG.font-face-format.content"/>
    </element>
  </define>

  <define name="attlist.font-face-format" combine="interleave">
    <ref name="SVG.Core.attrib"/>
    <optional>
      <attribute name="string"/>
    </optional>
  </define>

  <a:documentation>
    definition-src: Definition Source Element
  </a:documentation>

  <define name="SVG.definition-src.content">
    <empty/>
  </define>

  <define name="definition-src">
    <element name="definition-src">
      <ref name="attlist.definition-src"/>
      <ref name="SVG.definition-src.content"/>
    </element>
  </define>

  <define name="attlist.definition-src" combine="interleave">
    <ref name="SVG.Core.attrib"/>
    <ref name="SVG.XLinkRequired.attrib"/>
  </define>

</grammar>
