XLink.odd

From TEIWiki

Jump to: navigation, search

An ODD that demonstrates a way to add XLink attributes to att.pointing.

<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:lang="en" xmlns="http://www.tei-c.org/ns/1.0"
     xmlns:rng="http://relaxng.org/ns/structure/1.0"
     xmlns:xlink="http://www.w3.org/1999/xlink">
  <teiHeader>
    <fileDesc>
      <titleStmt>
        <title>Example of TEI Schema that Permits XLink</title>
        <author>Syd Bauman</author>
      </titleStmt>
      <publicationStmt>
        <publisher>Text Encoding Initiative Consortium</publisher>
        <availability status="free">
          <p>Copyleft 2007 Text Encoding Initiative Consortium</p>
        </availability>
      </publicationStmt>
      <sourceDesc>
        <p>No source, this TEI document <emph>is</emph> the source.</p>
      </sourceDesc>
    </fileDesc>
  </teiHeader>
  <text>
    <body>
      <div>
        <head>Sample TEI ODD Customization that uses XLink</head>
        <p>This sample ODD demonstrates a method for adding the W3C
        XLink attributes to elements that are members of the class
        <name type="class">att.pointing</name>. By default those
        elements are: <gi>alt</gi>, <gi>altGrp</gi>,
        <gi>joinGrp</gi>, <gi>linkGrp</gi>, <gi>join</gi>,
        <gi>link</gi>, <gi>ptr</gi>, and <gi>ref</gi>. I do not claim
        that this is the only or the best way.</p>
        <p>This customization is intended to serve as an example on
        how to customize the TEI schema a certain way, and the
        resulting schemas are not intended to actually be used for
        encoding. This customization permits the root element of
        conforming instances to be <gi>div</gi>, even though such
        instances are definitionally not TEI-conformant.</p>
        <schemaSpec ident="TEIxlink" start="TEI div">
          <!-- ******************************************************** -->
          <!-- module inclusion section                                 -->
          <!-- ******************************************************** -->
          <moduleRef key="core"/>
          <moduleRef key="header"/>
          <moduleRef key="tei"/>
          <moduleRef key="textstructure"/>
          <moduleRef key="linking"/>       
          <!-- ******************************************************** -->
          <!-- class alteration section                                 -->
          <!-- ******************************************************** -->
          <classSpec module="tei" type="atts" ident="att.pointing" mode="change">
            <attList>
              <attDef mode="add" ident="xlink:type">
                <datatype><rng:ref name="data.enumerated"/></datatype>
                <valList type="closed">
                  <valItem ident="simple"/> 
                  <valItem ident="extended"/> 
                  <valItem ident="locator"/> 
                  <valItem ident="arc"/> 
                  <valItem ident="resource"/> 
                  <valItem ident="title"/> 
                  <valItem ident="none"/>
                </valList>
                <remarks>
                  <p>For semantics and additional constraints see <ptr
                  target="http://www.w3.org/TR/xlink/#link-types"/>.</p>
                </remarks>
              </attDef>
              <attDef mode="add" ident="xlink:href">
                <datatype><rng:ref name="data.pointer"/></datatype>
                <remarks>
                  <p>For semantics and additional constraints see <ptr
                  target="http://www.w3.org/TR/xlink/#link-locators"/>.</p>
                </remarks>
              </attDef>
              <attDef mode="add" ident="xlink:role">
                <datatype><rng:ref name="data.pointer"/></datatype>
                <remarks>
                  <p>For semantics and additional constraints see <ptr
                  target="http://www.w3.org/TR/xlink/#link-semantics"/>.</p>
                </remarks>
              </attDef>
              <attDef mode="add" ident="xlink:arcrole">
                <datatype><rng:ref name="data.pointer"/></datatype>
                <remarks>
                  <p>For semantics and additional constraints see <ptr
                  target="http://www.w3.org/TR/xlink/#link-semantics"/>.</p>
                </remarks>
              </attDef>
              <attDef mode="add" ident="xlink:title">
                <datatype minOccurs="1" maxOccurs="unbounded"><rng:ref name="data.word"/></datatype>
                <remarks>
                  <p>For semantics and additional constraints see <ptr
                  target="http://www.w3.org/TR/xlink/#link-semantics"/>.</p>
                </remarks>
              </attDef>
              <attDef mode="add" ident="xlink:show">
                <datatype><rng:ref name="data.enumerated"/></datatype>
                <valList type="closed">
                  <valItem ident="new"/> 
                  <valItem ident="replace"/> 
                  <valItem ident="embed"/> 
                  <valItem ident="other"/> 
                  <valItem ident="none"/>
                </valList>
                <remarks>
                  <p>For semantics and additional constraints see <ptr
                  target="http://www.w3.org/TR/xlink/#show-att"/>.</p>
                </remarks>
              </attDef>
              <attDef mode="add" ident="xlink:actuate">
                <datatype><rng:ref name="data.enumerated"/></datatype>
                <valList type="closed">
                  <valItem ident="onLoad"/> 
                  <valItem ident="onRequest"/> 
                  <valItem ident="other"/> 
                  <valItem ident="none"/>
                </valList>
                <remarks>
                  <p>For semantics and additional constraints see <ptr
                  target="http://www.w3.org/TR/xlink/#actuate-att"/>.</p>
                </remarks>
              </attDef>
              <attDef mode="add" ident="xlink:label">
                <datatype><rng:ref name="data.name"/></datatype>
                <remarks>
                  <p>For semantics and additional constraints see <ptr
                  target="http://www.w3.org/TR/xlink/#traversal-atts"/>.</p>
                </remarks>
              </attDef>
              <attDef mode="add" ident="xlink:from">
                <datatype><rng:ref name="data.name"/></datatype>
                <remarks>
                  <p>For semantics and additional constraints see <ptr
                  target="http://www.w3.org/TR/xlink/#traversal-atts"/>.</p>
                </remarks>
              </attDef>
              <attDef mode="add" ident="xlink:to">
                <datatype><rng:ref name="data.name"/></datatype>
                <remarks>
                  <p>For semantics and additional constraints see <ptr
                  target="http://www.w3.org/TR/xlink/#traversal-atts"/>.</p>
                </remarks>
              </attDef>
            </attList>
          </classSpec>
        </schemaSpec>
      </div>
    </body>
  </text>
</TEI>
Personal tools