poetry.xsd
author fabien
Tue, 27 Dec 2005 13:55:27 -0500
branchdtd
changeset 0 80b83583ec4b
permissions -rw-r--r--
[svn r1850] r2001@freebird: fabien | 2005-12-27 01:28:42 -0500 Last cleanup.

<?xml version="1.0" ?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
  xmlns:p="http://www.tzone.org/~fabien/DTD/2002/Poetry"
  targetNamespace="http://www.tzone.org/~fabien/DTD/2002/Poetry"
  elementFormDefault="qualified">

  <annotation>
    <documentation xml:lang="en">
      Poetry DTD and other stuff.
      © 2002 Fabien Niñoles. All right reserved.
    </documentation>
  </annotation>

  <attributeGroup name="commonAttrib">
    <attribute minOccurs="0" name="id" type="ID"/>
    <attribute minOccurs="0" name="lang" type="xml:lang"/>
    <attribute minOccurs="0" name="role" type="token"/>
    <attribute minOccurs="0" name="xreflabel" type="token"/>
   </attributeGroup>

  <attributeGroup ref="p:commonAttrib"/>

  <element name="book">
    <sequence>
      <element minOccurs="0" name="docinfo" type="p:docinfoType"/>
      <element name="title" type="p:titleType"/>
      <choice>
        <element maxOccurs="unbounded" name="chapter" type="p:chapterType"/>
        <element maxOccurs="unbounded" name="section" type="p:sectionType"/>
        <element maxOccurs="unbounded" name="poetry" type="p:poetryType"/>
      </choice>
    </sequence>
  </element>

  <complexType name="docinfoType">
    <sequence>
      <element name="title" type="string"/>
      <element minOccurs="0" name="subtitle" type="string"/>
      <element minOccurs="0" name="version" type="string"/>
      <element minOccurs="0" name="status" type="string"/>
      <choice>
        <element name="author" type="p:individuType"/>
        <element name="authorgroup" type="authorgroupType"/>
      </choice>
      <element minOccurs="0" name="copyright" type="p:copyrightType"/>
      <element minOccurs="0" name="legalnotice" type="p:legalnoticeType"/>
      <element minOccurs="0" name="revhistory" type="p:revhistoryType"/>
    </sequence>
  </complexType>

  <complexType name="individuType">
    <sequence>
      <element minOccurs="0" name="firstname" type="string"/>
      <element minOccurs="0" name="initials" type="string"/>
      <element name="surname" type="string"/>
      <element minOccurs="0" name="email" type="p:emailType"/>
      <element minOccurs="0" name="address" type="p:addressType"/>
    </sequence>
  </complexType>

  <simpleType name="emailType">
    <restriction base="token">
      <pattern value=".*@.*"/>
    </restriction>
  </simpleType>

  <complexType name="addressType">
    <sequence>
      <element minOccurs="0" name="civicnumber" type="token"/>
      <element minOccurs="0" name="street" type="string"/>
      <element minOccurs="0" name="pob" type="token"/>
      <element minOccurs="0" name="city" type="string"/>
      <element minOccurs="0" name="state" type="string"/>
      <element minOccurs="0" name="country" type="string"/>
      <element minOccurs="0" name="postcode" type="string"/>
      <element minOccurs="0" name="phone" type="string"/>
      <element minOccurs="0" name="fax" type="string"/>
      <element minOccurs="0" name="email" type="p:emailType"/>
      <element minOccurs="0" name="other" type="string"/>
    </sequence>
  </complexType>

  <complexType name="authorgroupType">
    <sequence>
      <element maxOccurs="unbounded" name="author" type="p:individuType"/>
    </sequence>
  </complexType>

  <complexType name="copyrightType">
  <complexType name="legalnoticeType"/>
  <complexType name="revhistoryType"/>

  <complexType name="sectionType"/>
  <complexType name="poetryType"/>

  <attributeGroup name="xrefAttrib">
    <attribute name="linkend" type="IDREF"/>
    <attribute minOccurs="0" name="endterm" type="IDREF"/>
  </attributeGroup>

  <complexType name="titleClass">
    <sequence>
      <element name="title" type="p:textClass"/>
      <element minOccurs="0" name="subtitle" type="p:textClass"/>
      <element minOccurs="0" name="subtitle" type="p:textClass"/>
    </sequence>
  </complexType>

  <complexType name="infoClass">
    <complexContent>
      <sequence>
        <element minOccurs="0" name="docinfo" type="p:docinfoType"/>
      </sequence>
      <extension base="p:titleClass"/>
    </complexContent>
  </complexType>

  <complexType name="authorClass">
    <element name="author" type="p:authorType"/>
  </complexType>
  
  <complexType name="xrefClass">
    <choice>
      <element name="anchor"/>
      <element name="xref">
        <attributeGroup ref="xrefAttrib"/>
      </element>
      <element name="link" type="p:textClass">
        <attributeGroup ref="p:xrefAttrib"/>
      </element>
      <element name="ulink" type="p:textClass">
        <attributeGroup ref="p:xrefAttrib"/>
        <attribute name="url" type="anyURI"/>
      </element>
    </choice>
  </complexType>

  <complexType name="individuClass">
    <sequence>
      <element minOccurs="0" name="firstname" type="token"/>
      <element minOccurs="0" name="initials" type="token"/>
      <element name="surname" type="token"/>
      <element minOccurs="0" name="email" type="anyURI"/>
      <element minOccurs="0" name="address" type="p:addressType"/>
    </sequence>
  </complexType>

  <complexType name="textClass" mixed="true">
    <complexContent>
      <extension base="xrefClass"/>
      <choice minOccurs="0" maxOccurs="unbounded">
        <element name="emphasis" type="p:textClass"/>
        <element name="term"/>
        <element name="subscript"/>
        <element name="superscript"/>
        <element name="foreign"/>
        <element name="replaceable"/>
        <element name="literal"/>
      </choice>
    </complexContent>
  </complexType>

</schema>
<!-- Keep this comment at the end of the file
Local variables:
mode: xml
sgml-omittag:nil
sgml-shorttag:nil
sgml-namecase-general:nil
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"poetry.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->