<?xml version="1.0" encoding="UTF-8"?> <!-- ============================================================================================= WileyML 3G A model for the content of John Wiley & 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 <body>)</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>