Newer
Older
ade-outils-xml / dtd / Wileyml3gv20-rng / Wileyml3g-patterns.rng
@niederle niederle on 29 Dec 2015 11 KB 1er commit
<?xml version="1.0" encoding="UTF-8"?>
<!--
  =============================================================================================
  WileyML 3G
  
  A model for the content of John Wiley &amp; Sons. 
  
  This file conforms to ISO/IEC 19757-2:2003 AMENDMENT 1 (RELAX NG Compact Syntax). The
  collection of these files normatively defines the XML grammar for WileyNG instances.
  
  Copyright (c) 2011 John Wiley & Sons Inc. All rights reserved worldwide.
  
  $Id: WileyML3g-patterns.rnc,v 1.52 2011/07/24  8:58:37 johnp Exp $
  =============================================================================================
-->
<grammar xmlns:cms="http://cms.wiley.com" xmlns:dctm="http://www.documentum.com" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:aux="http://www.wiley.com/namespaces/wiley/aux" xmlns="http://relaxng.org/ns/structure/1.0">
  <!--
    Addition (Dec 2015):
      1. added @guid to global attributes (pattern.global.attributes)
  -->
  <!--
    Addition (Oct 2014):
      1. moved @audience to global attributes (pattern.global.attributes)
  -->
  <!--
    Addition (Feb 2013):
      1. added eLocator to pattern.model.fragment.bib.common
  -->
  <!--
    Changes for v2.0 (Aug 2011):
      1. added pattern.para.or.paras.or.ftf
      2. added optional onlyChannels to pattern.global.attributes
      3. added termGroup to pattern.common.inline.semantics.nomath.nobib
      4. removed "public" and "limited" from pattern.rights.attributes.tokens
  -->
  <!--
    Changes for v1.0.3 (Oct 2010):
      1. pattern.model.fragment.high.appendix: added  feature
  -->
  <define name="pattern.boolean.tokens">
    <choice>
      <value>yes</value>
      <value>no</value>
    </choice>
  </define>
  <define name="pattern.model.fragment.inline.name.elements.bib">
    <choice>
      <ref name="wng.familyName"/>
      <ref name="wng.givenNames"/>
      <ref name="wng.familyNamePrefix"/>
      <ref name="wng.nameSuffix"/>
    </choice>
  </define>
  <define name="pattern.model.fragment.inline.name.elements">
    <choice>
      <ref name="pattern.model.fragment.inline.name.elements.bib"/>
      <ref name="wng.titlesAfterNames"/>
    </choice>
  </define>
  <define name="pattern.rights.attributes.tokens">
    <choice>
      <value>yes</value>
      <value>no</value>
      <value>unknown</value>
    </choice>
  </define>
  <define name="pattern.type.attribute">
    <attribute name="type">
      <aux:desc>for specializing the use of the element</aux:desc>
    </attribute>
  </define>
  <define name="pattern.rights.attributes">
    <interleave>
      <optional>
        <attribute name="pRights">
          <aux:desc>print publishing rights (default value is yes). See usage guideline above.</aux:desc>
          <ref name="pattern.rights.attributes.tokens"/>
        </attribute>
      </optional>
      <optional>
        <attribute name="eRights">
          <aux:desc>online publishing rights (default value is yes). See usage guideline above.</aux:desc>
          <ref name="pattern.rights.attributes.tokens"/>
        </attribute>
      </optional>
      <optional>
        <attribute name="copyright">
          <aux:desc>copyright for this element content</aux:desc>
        </attribute>
      </optional>
    </interleave>
  </define>
  <define name="pattern.list.style.tokens">
    <choice>
      <value>1</value>
      <value>I</value>
      <value>i</value>
      <value>A</value>
      <value>a</value>
      <value>plain</value>
      <value>bulleted</value>
      <value>custom</value>
      <value>checkbox</value>
    </choice>
  </define>
  <define name="pattern.global.attributes">
    <interleave>
      <optional>
        <attribute name="role">
          <aux:desc>for specializing the use of the element</aux:desc>
        </attribute>
      </optional>
      <optional>
        <attribute name="onlyChannels">
          <aux:desc>specifies whether content of the element should be restricted to appearing only in print or only online. Omission of this attribute means the content is to appear in all renderings.</aux:desc>
        </attribute>
      </optional>
      <optional>
        <attribute name="audience">
          <aux:desc>the intended audience (default value is both)</aux:desc>
        </attribute>
      </optional>
      <optional>
        <attribute name="guid">
          <aux:desc>A Globally Unique Identifier)</aux:desc>
        </attribute>
      </optional>
      <optional>
        <attribute name="dctm:obj_id">
          <aux:desc>!suppress!</aux:desc>
        </attribute>
      </optional>
      <optional>
        <attribute name="dctm:obj_status">
          <aux:desc>!suppress!</aux:desc>
        </attribute>
      </optional>
      <optional>
        <attribute name="dctm:version_label">
          <aux:desc>!suppress!</aux:desc>
        </attribute>
      </optional>
      <optional>
        <attribute name="dctm:link_version_label">
          <aux:desc>!suppress!</aux:desc>
        </attribute>
      </optional>
      <optional>
        <attribute name="cms:chunk">
          <aux:desc>!suppress!</aux:desc>
          <ref name="pattern.boolean.tokens"/>
        </attribute>
      </optional>
      <optional>
        <attribute name="cms:link">
          <aux:desc>!suppress!</aux:desc>
        </attribute>
      </optional>
    </interleave>
  </define>
  <define name="pattern.id.attribute">
    <attribute name="xml:id">
      <aux:desc>an xml:id compliant identifier</aux:desc>
    </attribute>
  </define>
  <define name="pattern.lang.attribute">
    <attribute name="xml:lang">
      <aux:desc>the language/dialect of the element content as a two-letter lowercase code conforming to ISO 639-1 (see second column of http://www.loc.gov/standards/iso639-2/php/code_list.php) If the attribute is omitted, the value is inherited from the nearest ancestor bearing an xml:lang value.</aux:desc>
    </attribute>
  </define>
  <define name="pattern.countryCode.attribute">
    <attribute name="countryCode">
      <aux:desc>ISO 3166 two-letter country code</aux:desc>
    </attribute>
  </define>
  <define name="pattern.autonumber.attribute">
    <optional>
      <attribute name="resumeNumberingAt">
        <aux:desc>specifies a number at which to resume automated numbering after an irregularity</aux:desc>
      </attribute>
    </optional>
  </define>
  <define name="pattern.date.attribute">
    <attribute name="date">
      <aux:desc>an ISO 8601 date</aux:desc>
    </attribute>
  </define>
  <define name="pattern.model.fragment.fixed">
    <choice>
      <ref name="wng.list"/>
      <ref name="wng.listPaired"/>
      <ref name="wng.tabularFixed"/>
      <ref name="wng.blockFixed"/>
      <ref name="wng.computerCode"/>
      <ref name="wng.featureFixed"/>
      <ref name="wng.displayedItem"/>
      <ref name="wng.chemicalStructure"/>
      <ref name="wng.mathStatement"/>
    </choice>
  </define>
  <define name="pattern.model.fragment.floats">
    <choice>
      <ref name="wng.tabular"/>
      <ref name="wng.figure"/>
      <ref name="wng.block"/>
      <ref name="wng.recipe"/>
    </choice>
  </define>
  <define name="pattern.minimal.formatting">
    <choice>
      <ref name="wng.i"/>
      <ref name="wng.b"/>
      <ref name="wng.sup"/>
      <ref name="wng.sub"/>
    </choice>
  </define>
  <define name="pattern.formatting.nomath">
    <choice>
      <ref name="pattern.minimal.formatting"/>
      <ref name="wng.sc"/>
      <ref name="wng.fc"/>
      <ref name="wng.span"/>
      <ref name="wng.inlineGraphic"/>
      <ref name="wng.fr"/>
      <ref name="wng.fi"/>
    </choice>
  </define>
  <define name="pattern.formatting">
    <choice>
      <ref name="pattern.minimal.formatting"/>
      <ref name="wng.sc"/>
      <ref name="wng.fc"/>
      <ref name="wng.span"/>
      <ref name="wng.inlineGraphic"/>
      <ref name="math"/>
      <ref name="wng.fr"/>
      <ref name="wng.fi"/>
    </choice>
  </define>
  <define name="pattern.common.inline.semantics.nomath.nobib">
    <choice>
      <ref name="wng.blank"/>
      <ref name="wng.email"/>
      <ref name="wng.url"/>
      <ref name="wng.infoAsset"/>
      <ref name="wng.accessionId"/>
      <ref name="wng.link"/>
      <ref name="wng.note"/>
      <ref name="wng.term"/>
      <ref name="wng.termDefinition"/>
      <ref name="wng.termGroup"/>
      <ref name="wng.record"/>
    </choice>
  </define>
  <define name="pattern.common.inline.semantics.nobib">
    <choice>
      <ref name="pattern.common.inline.semantics.nomath.nobib"/>
      <ref name="math"/>
    </choice>
  </define>
  <define name="pattern.common.inline.semantics.nomath">
    <choice>
      <ref name="pattern.common.inline.semantics.nomath.nobib"/>
      <ref name="wng.citation"/>
    </choice>
  </define>
  <define name="pattern.common.inline.semantics">
    <choice>
      <ref name="pattern.common.inline.semantics.nomath"/>
      <ref name="math"/>
    </choice>
  </define>
  <define name="pattern.model.fragment.common.inlines">
    <choice>
      <ref name="pattern.formatting"/>
      <ref name="pattern.common.inline.semantics.nomath"/>
    </choice>
  </define>
  <define name="pattern.model.fragment.all.inlines">
    <choice>
      <ref name="pattern.formatting"/>
      <ref name="pattern.common.inline.semantics.nomath"/>
    </choice>
  </define>
  <define name="pattern.model.fragment.para.model">
    <choice>
      <ref name="pattern.model.fragment.all.inlines"/>
      <ref name="pattern.model.fragment.fixed"/>
      <ref name="wng.exercise"/>
    </choice>
  </define>
  <define name="pattern.para.or.paras">
    <zeroOrMore>
      <choice>
        <text/>
        <ref name="pattern.model.fragment.para.model"/>
        <ref name="wng.p"/>
      </choice>
    </zeroOrMore>
  </define>
  <define name="pattern.para.or.paras.or.ftf">
    <zeroOrMore>
      <choice>
        <text/>
        <ref name="pattern.model.fragment.para.model"/>
        <ref name="wng.p"/>
        <ref name="wng.figure"/>
        <ref name="wng.tabular"/>
        <ref name="wng.feature"/>
      </choice>
    </zeroOrMore>
  </define>
  <define name="pattern.common.semantic.fragment">
    <ref name="wng.url"/>
  </define>
  <define name="pattern.model.fragment.bib.common">
    <choice>
      <ref name="wng.pubYear"/>
      <ref name="wng.defendant"/>
      <ref name="wng.plaintiff"/>
      <ref name="wng.articleTitle"/>
      <ref name="wng.author"/>
      <ref name="wng.bookSeriesTitle"/>
      <ref name="wng.bookTitle"/>
      <ref name="wng.chapterTitle"/>
      <ref name="wng.edition"/>
      <ref name="wng.editor"/>
      <ref name="wng.eLocator"/>
      <ref name="wng.groupName"/>
      <ref name="wng.journalTitle"/>
      <ref name="wng.otherTitle"/>
      <ref name="wng.pageFirst"/>
      <ref name="wng.pageLast"/>
      <ref name="wng.publisherLoc"/>
      <ref name="wng.publisherName"/>
      <ref name="wng.statuteTitle"/>
      <ref name="wng.issue"/>
      <ref name="wng.vol"/>
      <ref name="pattern.common.inline.semantics.nobib"/>
    </choice>
  </define>
  <define name="pattern.model.fragment.high.appendix">
    <choice>
      <ref name="wng.section"/>
      <ref name="wng.bibliography"/>
      <ref name="wng.feature"/>
      <ref name="wng.letter"/>
      <ref name="wng.noteGroup"/>
      <ref name="wng.subComponent"/>
      <ref name="wng.exerciseSection"/>
      <ref name="wng.protocol"/>
    </choice>
  </define>
  <define name="wng.hard">
    <ref name="pattern.formatting"/>
  </define>
  <define name="pattern.model.fragment.titling">
    <choice>
      <ref name="wng.title"/>
      <ref name="wng.titleGroup"/>
    </choice>
  </define>
</grammar>