Newer
Older
ade-outils-xml / dtd / Wileyml3gv20-rng / Wileyml3g-protocols.rng
@niederle niederle on 29 Dec 2015 6 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-protocols.rnc,v 1.94 2011/07/24  8:55:55 johnp Exp $
  =============================================================================================
-->
<grammar xmlns:wng="http://www.wiley.com/namespaces/wiley" xmlns:aux="http://www.wiley.com/namespaces/wiley/aux" xmlns="http://relaxng.org/ns/structure/1.0">
  <!--
    Changes for v2.0 (Aug 2011)
      1. <protocol>: added optional @numbered="yes|no"
  -->
  <!--
    =============================================================================================
    protocol
    =============================================================================================
  -->
  <define name="wng.protocol.attlist">
    <interleave>
      <ref name="pattern.global.attributes"/>
      <attribute name="type">
        <aux:desc>the type of protocol</aux:desc>
        <choice>
          <value>basic</value>
          <value>alternate</value>
          <value>support</value>
        </choice>
      </attribute>
      <ref name="pattern.id.attribute"/>
      <optional>
        <!-- & pattern.autonumber.attribute? -->
        <attribute name="numbered">
          <aux:desc>whether this protocol is numbered (only needed if different from 'sectionsNumbered' value on &lt;body&gt;)</aux:desc>
          <ref name="pattern.boolean.tokens"/>
        </attribute>
      </optional>
    </interleave>
  </define>
  <define name="wng.protocol">
    <element name="wng:protocol">
      <aux:desc aux:cat="cp">A protocol (laboratory procedure).</aux:desc>
      <ref name="wng.protocol.attlist"/>
      <optional>
        <ref name="pattern.model.fragment.titling"/>
      </optional>
      <choice>
        <zeroOrMore>
          <choice>
            <ref name="wng.p"/>
            <ref name="wng.figure"/>
            <ref name="wng.tabular"/>
          </choice>
        </zeroOrMore>
        <zeroOrMore>
          <ref name="wng.section"/>
        </zeroOrMore>
      </choice>
      <optional>
        <ref name="wng.protocolMaterials"/>
      </optional>
      <oneOrMore>
        <ref name="wng.protocolSection"/>
      </oneOrMore>
    </element>
  </define>
  <!--
    =============================================================================================
    protocolMaterials
    =============================================================================================
  -->
  <define name="wng.protocolMaterials.attlist">
    <interleave>
      <ref name="pattern.global.attributes"/>
      <ref name="pattern.id.attribute"/>
    </interleave>
  </define>
  <define name="wng.protocolMaterials">
    <element name="wng:protocolMaterials">
      <aux:desc aux:cat="cp">In a laboratory <xref xmlns="" linkend="wng_protocol"/>
+++, a description of its materials.</aux:desc>
      <ref name="wng.protocolMaterials.attlist"/>
      <optional>
        <ref name="pattern.model.fragment.titling"/>
      </optional>
      <oneOrMore>
        <choice>
          <ref name="wng.p"/>
          <ref name="wng.figure"/>
          <ref name="wng.tabular"/>
        </choice>
      </oneOrMore>
    </element>
  </define>
  <!--
    =============================================================================================
    protocolRecipe
    =============================================================================================
  -->
  <define name="wng.protocolRecipe.attlist">
    <interleave>
      <ref name="pattern.global.attributes"/>
      <ref name="pattern.id.attribute"/>
    </interleave>
  </define>
  <define name="wng.protocolRecipe">
    <element name="wng:protocolRecipe">
      <aux:desc aux:cat="cp">In a laboratory protocol, a list of ingredients and instructions for producing a reagent or solution.</aux:desc>
      <ref name="wng.protocolRecipe.attlist"/>
      <optional>
        <ref name="pattern.model.fragment.titling"/>
      </optional>
      <oneOrMore>
        <choice>
          <ref name="wng.p"/>
          <ref name="wng.figure"/>
          <ref name="wng.tabular"/>
        </choice>
      </oneOrMore>
    </element>
  </define>
  <!--
    =============================================================================================
    protocolSection
    =============================================================================================
  -->
  <define name="wng.protocolSection.attlist">
    <interleave>
      <ref name="pattern.global.attributes"/>
      <ref name="pattern.id.attribute"/>
    </interleave>
  </define>
  <define name="wng.protocolSection">
    <element name="wng:protocolSection">
      <aux:desc aux:cat="cp">A wrapper for a group of <xref xmlns="" linkend="wng_protocolStep"/>
+++s, with an optional title.</aux:desc>
      <ref name="wng.protocolSection.attlist"/>
      <optional>
        <ref name="pattern.model.fragment.titling"/>
      </optional>
      <oneOrMore>
        <choice>
          <ref name="wng.p"/>
          <ref name="wng.protocolStep"/>
          <ref name="wng.figure"/>
          <ref name="wng.tabular"/>
          <ref name="wng.protocolSection"/>
        </choice>
      </oneOrMore>
    </element>
  </define>
  <!--
    =============================================================================================
    protocolStep
    =============================================================================================
  -->
  <define name="wng.protocolStep.attlist">
    <interleave>
      <ref name="pattern.id.attribute"/>
      <optional>
        <ref name="pattern.autonumber.attribute"/>
      </optional>
    </interleave>
  </define>
  <define name="wng.protocolStep">
    <element name="wng:protocolStep">
      <aux:desc aux:cat="cp">A numbered step within a laboratory <xref xmlns="" linkend="wng_protocol"/>
+++.</aux:desc>
      <ref name="wng.protocolStep.attlist"/>
      <optional>
        <ref name="wng.label"/>
      </optional>
      <optional>
        <ref name="pattern.model.fragment.titling"/>
      </optional>
      <oneOrMore>
        <choice>
          <ref name="wng.p"/>
          <ref name="wng.figure"/>
          <ref name="wng.tabular"/>
        </choice>
      </oneOrMore>
    </element>
  </define>
</grammar>