<?xml version=“1.0” encoding=“UTF-8”?> <grammar xmlns=“relaxng.org/ns/structure/1.0” datatypeLibrary=“www.w3.org/2001/XMLSchema-datatypes”>
<!-- Presupposes isodoc.rnc, is included in it include "isodoc.rnc" { } --> <define name="requirement"> <element name="requirement"> <ref name="RequirementType"/> </element> </define> <define name="recommendation"> <element name="recommendation"> <ref name="RequirementType"/> </element> </define> <define name="permission"> <element name="permission"> <ref name="RequirementType"/> </element> </define> <define name="RequirementType"> <optional> <attribute name="obligation"> <ref name="ObligationType"/> </attribute> </optional> <optional> <attribute name="unnumbered"> <data type="boolean"/> </attribute> </optional> <optional> <attribute name="subsequence"/> </optional> <attribute name="id"> <data type="ID"/> </attribute> <optional> <attribute name="filename"/> </optional> <optional> <attribute name="model"/> </optional> <optional> <attribute name="type"/> </optional> <optional> <ref name="reqtitle"/> </optional> <optional> <ref name="label"/> </optional> <optional> <ref name="subject"/> </optional> <zeroOrMore> <ref name="reqinherit"/> </zeroOrMore> <zeroOrMore> <ref name="classification"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="measurementtarget"/> <ref name="specification"/> <ref name="verification"/> <ref name="import"/> <ref name="description"/> </choice> </zeroOrMore> <optional> <ref name="reqt_references"/> </optional> <zeroOrMore> <choice> <ref name="requirement"/> <ref name="recommendation"/> <ref name="permission"/> </choice> </zeroOrMore> </define> <define name="reqtitle"> <element name="title"> <ref name="FormattedString"/> </element> </define> <define name="label"> <element name="label"> <text/> </element> </define> <define name="subject"> <element name="subject"> <text/> </element> </define> <define name="reqinherit"> <element name="inherit"> <text/> </element> </define> <define name="measurementtarget"> <element name="measurement-target"> <ref name="RequirementSubpart"/> </element> </define> <define name="specification"> <element name="specification"> <ref name="RequirementSubpart"/> </element> </define> <define name="verification"> <element name="verification"> <ref name="RequirementSubpart"/> </element> </define> <define name="import"> <element name="import"> <ref name="RequirementSubpart"/> </element> </define> <define name="description"> <element name="description"> <ref name="RequirementSubpart"/> </element> </define> <define name="reqt_references"> <element name="references"> <oneOrMore> <ref name="bibitem"/> </oneOrMore> </element> </define> <define name="RequirementSubpart"> <optional> <attribute name="type"/> </optional> <optional> <attribute name="exclude"> <data type="boolean"/> </attribute> </optional> <oneOrMore> <ref name="BasicBlock"/> </oneOrMore> </define> <define name="ObligationType"> <choice> <value>requirement</value> <value>recommendation</value> <value>permission</value> </choice> </define> <define name="classification"> <element name="classification"> <ref name="classification_tag"/> <ref name="classification_value"/> </element> </define> <define name="classification_tag"> <element name="tag"> <text/> </element> </define> <define name="classification_value"> <element name="value"> <text/> </element> </define>
</grammar>