Mercurial > hg > mpdl-xml-content
view texts/archimedesOldCVSRepository/archimedes/xsd/archimedes.xsd @ 29:90b1eda1b0a9
Some new special instructions
author | Klaus Thoden <kthoden@mpiwg-berlin.mpg.de> |
---|---|
date | Fri, 02 Dec 2016 14:37:22 +0100 |
parents | 22d6a63640c6 |
children |
line wrap: on
line source
<?xml version="1.0" encoding="UTF-8"?> <!-- footnotes and margnotes get yanked out of their <p>s, repl. by <arrow>, --> <!-- and moved to own p. --> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:xlink="http://www.w3.org/1999/xlink"> <xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd"/> <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/> <xs:element name="foot.target"> <xs:complexType mixed="true"> <xs:attribute name="id" use="required" type="xs:ID"/> <xs:attribute name="n"/> </xs:complexType> </xs:element> <!-- e.g. number in front of a footnote --> <xs:element name="margin.target"> <xs:complexType mixed="true"> <xs:attribute name="id" use="required" type="xs:ID"/> <xs:attribute name="n"/> </xs:complexType> </xs:element> <xs:element name="table.target"> <xs:complexType mixed="true"> <xs:attribute name="id" use="required" type="xs:ID"/> <xs:attribute name="n"/> </xs:complexType> </xs:element> <xs:element name="arrow.to.target"> <xs:complexType mixed="true"> <xs:attribute name="symbol"/> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> <xs:attribute ref="xlink:type" default="simple"/> <xs:attribute ref="xlink:href"/> </xs:complexType> </xs:element> <!-- reference to removed figure/note. contains mark in text. --> <!-- n attribute contains id of referent target --> <!-- Can marginalia ever have referring marks in text? --> <xs:element name="archimedes"> <xs:complexType> <xs:sequence> <xs:element ref="info"/> <xs:element ref="text"/> </xs:sequence> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> </xs:complexType> </xs:element> <xs:element name="author"> <xs:complexType mixed="true"> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> </xs:complexType> </xs:element> <xs:element name="back"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element ref="section"/> <xs:element minOccurs="0" ref="pb"/> </xs:choice> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> <xs:attribute name="type"/> </xs:complexType> </xs:element> <xs:element name="body"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element ref="chap"/> <xs:element minOccurs="0" ref="pb"/> </xs:choice> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> </xs:complexType> </xs:element> <xs:element name="comments"> <xs:complexType mixed="true"> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> </xs:complexType> </xs:element> <xs:element name="cvs_file"> <xs:complexType mixed="true"> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> </xs:complexType> </xs:element> <xs:element name="cvs_version"> <xs:complexType mixed="true"> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> </xs:complexType> </xs:element> <xs:element name="chap"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element ref="p"/> <xs:element ref="pb"/> <xs:element ref="figure"/> <xs:element ref="table"/> <xs:element ref="subchap1"/> </xs:choice> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> <xs:attribute name="type"/> </xs:complexType> </xs:element> <xs:element name="subchap1"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element ref="p"/> <xs:element ref="pb"/> <xs:element ref="figure"/> <xs:element ref="table"/> <xs:element ref="subchap2"/> </xs:choice> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> <xs:attribute name="type"/> </xs:complexType> </xs:element> <xs:element name="subchap2"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element ref="p"/> <xs:element ref="pb"/> <xs:element ref="figure"/> <xs:element ref="table"/> </xs:choice> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> <xs:attribute name="type"/> </xs:complexType> </xs:element> <xs:element name="date"> <xs:complexType mixed="true"> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> </xs:complexType> </xs:element> <!----> <xs:element name="emph"> <xs:complexType> <xs:attribute name="type" default="italics"> <xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="italics"/> <xs:enumeration value="bold"/> <xs:enumeration value="sup"/> <xs:enumeration value="sub"/> <xs:enumeration value="over"/> <xs:enumeration value="smallcaps"/> <xs:enumeration value="center"/> <xs:enumeration value="roman"/> <xs:enumeration value="ul"/> <xs:enumeration value="quote"/> <xs:enumeration value="other"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> </xs:complexType> </xs:element> <xs:element name="emph.end"> <xs:complexType> <xs:attribute name="type" default="italics"> <xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="italics"/> <xs:enumeration value="bold"/> <xs:enumeration value="sup"/> <xs:enumeration value="sub"/> <xs:enumeration value="over"/> <xs:enumeration value="smallcaps"/> <xs:enumeration value="center"/> <xs:enumeration value="roman"/> <xs:enumeration value="ul"/> <xs:enumeration value="quote"/> <xs:enumeration value="other"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> </xs:complexType> </xs:element> <!-- the type attrib. here shld be entitized --> <xs:element name="expan"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="foot.target"/> <xs:element ref="margin.target"/> <xs:element ref="arrow.to.target"/> <xs:element ref="pb"/> <xs:element ref="lb"/> <xs:element ref="emph"/> <xs:element ref="emph.end"/> <xs:element ref="gap"/> </xs:choice> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> <xs:attribute name="abbr"/> <xs:attribute name="type"/> </xs:complexType> </xs:element> <!-- expand tags must be placed around the whole word in which abbreviations occur --> <xs:element name="figure"> <xs:complexType mixed="true"> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="place" default="text"> <xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="margin"/> <xs:enumeration value="text"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute ref="xlink:type" default="simple"/> <xs:attribute ref="xlink:href"/> </xs:complexType> </xs:element> <xs:element name="foreign"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="expan"/> <xs:element ref="foot.target"/> <xs:element ref="margin.target"/> <xs:element ref="arrow.to.target"/> <xs:element ref="pb"/> <xs:element ref="lb"/> <xs:element ref="emph"/> <xs:element ref="emph.end"/> <xs:element ref="gap"/> </xs:choice> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> <xs:attribute name="lang"/> </xs:complexType> </xs:element> <!-- <foreign> for text within sentences not in the main lang of the text --> <!-- or for text within non-default-lang higher elements --> <xs:element name="front"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element ref="section"/> <xs:element minOccurs="0" ref="pb"/> </xs:choice> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> <xs:attribute name="type"/> </xs:complexType> </xs:element> <xs:element name="gap"> <xs:complexType> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> <xs:attribute name="desc"/> </xs:complexType> </xs:element> <!-- gap is a catch-all tag employed at Perseus and in the TEI to isolate --> <!-- uncertain DE markup. It appears here for continuity's sake. --> <xs:element name="info"> <xs:complexType> <xs:sequence> <xs:element ref="author"/> <xs:element ref="title"/> <xs:element ref="date"/> <xs:element ref="place"/> <xs:element ref="translator"/> <xs:element ref="lang"/> <xs:element minOccurs="0" ref="cvs_file"/> <xs:element minOccurs="0" ref="cvs_version"/> <xs:element minOccurs="0" ref="comments"/> <xs:element ref="locator"/> </xs:sequence> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> </xs:complexType> </xs:element> <!-- how many of these should be required? --> <!-- what about bringing in line with dublin core? --> <xs:element name="lang"> <xs:complexType mixed="true"> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> </xs:complexType> </xs:element> <xs:element name="lb"> <xs:complexType> <xs:attribute name="ed"/> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> </xs:complexType> </xs:element> <!-- <lb> occurs at <s> level and at <p> level --> <!-- <lb> at end of <s> must be placed after </s> --> <!-- <lb> at beginning of <s> must be placed before <s> --> <!-- unrecognized symbols will appear inline acc. to special conventions. --> <!-- (as in DE specs) --> <!-- emph and and emph.end are elements that are quer to the xml structure --> <xs:element name="locator"> <xs:complexType mixed="true"> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> </xs:complexType> </xs:element> <xs:element name="p"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element ref="s"/> <xs:element ref="figure"/> <xs:element ref="pb"/> <xs:element ref="lb"/> <xs:element ref="emph"/> <xs:element ref="emph.end"/> <xs:element ref="gap"/> </xs:choice> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> <xs:attribute name="type" default="main"> <xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="main"/> <xs:enumeration value="table"/> <xs:enumeration value="marked"/> <xs:enumeration value="foot"/> <xs:enumeration value="margin"/> <xs:enumeration value="list"/> <xs:enumeration value="head"/> <xs:enumeration value="caption"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <!-- captions go in paragr's immediately after figure, with arrow.to.target --> <!-- table is allowed as val for type attr for backward compatibility --> <!-- pb can occur within p but NOT at the start or end --> <xs:element name="pb"> <xs:complexType> <xs:attribute name="ed"/> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> <xs:attribute ref="xlink:type" default="simple"/> <xs:attribute ref="xlink:href"/> <xs:attribute name="pagenum"/> </xs:complexType> </xs:element> <!-- the "ed" attribute gives the edition in which the page break occurs. If no --> <!-- edition is given, it is assumed to be that given in info --> <!-- pagenum gives the page number actually printed on the page. --> <!-- n gives the page number numbered consecutively from page 1 of text. --> <!-- pb can occur inside <s> etc. and inside <p> and inside <chap> --> <!-- <pb> at end of <p> must be placed after </p> --> <xs:element name="place"> <xs:complexType mixed="true"> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> </xs:complexType> </xs:element> <xs:element name="publisher"> <xs:complexType mixed="true"> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> </xs:complexType> </xs:element> <xs:element name="s"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="foreign"/> <xs:element ref="figure"/> <xs:element ref="expan"/> <xs:element ref="foot.target"/> <xs:element ref="margin.target"/> <xs:element ref="arrow.to.target"/> <xs:element ref="pb"/> <xs:element ref="lb"/> <xs:element ref="emph"/> <xs:element ref="emph.end"/> <xs:element ref="gap"/> </xs:choice> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> <xs:attribute ref="xml:space" default="preserve"/> </xs:complexType> </xs:element> <!-- mdh 2003-07-23 I've given <s> the special attribute xml:space="preserve", so that XML processors will respect whitespace within <s> and its descendants. See: "Extensible Markup Language (XML) 1.0", http://www.w3.org/TR/REC-xml, sec. 2.10 "White Space Handling". --> <xs:element name="section"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element ref="p"/> <xs:element ref="pb"/> <xs:element ref="figure"/> <xs:element ref="table"/> </xs:choice> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> <xs:attribute name="type"/> </xs:complexType> </xs:element> <xs:element name="table"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" ref="table.target"/> <xs:sequence maxOccurs="unbounded"> <xs:element ref="row"/> <xs:element minOccurs="0" ref="pb"/> </xs:sequence> </xs:sequence> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> </xs:complexType> </xs:element> <!-- order is now: <table><table.target/><row>...</row><pb> i.e. <table> is equiv. to <p type=margin> --> <xs:element name="row"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" ref="cell"/> </xs:sequence> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> </xs:complexType> </xs:element> <xs:element name="cell"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="foreign"/> <xs:element ref="expan"/> <xs:element ref="foot.target"/> <xs:element ref="margin.target"/> <xs:element ref="arrow.to.target"/> <xs:element ref="pb"/> <xs:element ref="lb"/> <xs:element ref="emph"/> <xs:element ref="emph.end"/> <xs:element ref="gap"/> </xs:choice> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> </xs:complexType> </xs:element> <xs:element name="text"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" ref="pb"/> <xs:element ref="front"/> <xs:element minOccurs="0" ref="pb"/> <xs:element ref="body"/> <xs:element minOccurs="0" ref="pb"/> <xs:element minOccurs="0" ref="back"/> </xs:sequence> <xs:attribute name="type"/> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> </xs:complexType> </xs:element> <!-- if front and back are going to be optional, then pb can be allowed to --> <!-- occur only within front body back. --> <xs:element name="title"> <xs:complexType mixed="true"> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> <xs:attribute name="type"/> </xs:complexType> </xs:element> <xs:element name="translator"> <xs:complexType mixed="true"> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="n"/> </xs:complexType> </xs:element> </xs:schema> <!-- entities are included below here (2001-11-14; mdh) -->