<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE module SYSTEM "relaxCore.dtd"> <!-- Module for RELAX Core (Ver 1.0) $Id: relaxCore.rlx 1.15 2000/04/16 04:28:48 murata Exp $ --> <module moduleVersion="1.0" relaxCoreVersion="1.0" xmlns="http://www.xml.gr.jp/xmlns/relaxCore"> <interface> <export label="module"/> </interface> <include moduleLocation="datatypes.rlx"/> <div> <annotation> <documentation>The overall structure of RELAX modules</documentation> </annotation> <elementRule role="module"> <sequence> <ref label="annotation" occurs="?"/> <ref label="interface" occurs="?"/> <choice occurs="*"> <hedgeRef label="clause"/> <!-- forward references are fine --> <hedgeRef label="rule"/> <!-- forward references are fine --> <ref label="divInModule"/> <ref label="include"/> </choice> </sequence> </elementRule> <tag name="module"> <annotation> <documentation>Namespace declarations cannot be controlled by RELAX Core. Wait for RELAX modularization.</documentation> </annotation> <attribute name="moduleVersion" type="string"/> <attribute name="relaxCoreVersion" type="string"/> <attribute name="targetNamespace" type="uriReference"/> </tag> <elementRule role="interface"> <sequence> <ref label="annotation" occurs="?"/> <choice occurs="*"> <ref label="export"/> <ref label="divInInterface"/> </choice> </sequence> </elementRule> <tag name="interface"/> <hedgeRule label="clause"> <choice> <ref label="tag"/> <ref label="attPool"/> </choice> </hedgeRule> <hedgeRule label="rule"> <choice> <ref label="elementRule"/> <ref label="hedgeRule"/> </choice> </hedgeRule> <elementRule label="divInModule"> <annotation> <documentation>div elements in modules</documentation> </annotation> <tag name="div"/> <sequence> <ref label="annotation" occurs="?"/> <choice> <hedgeRef label="rule"/> <hedgeRef label="clause"/> <ref label="divInModule"/> <ref label="include"/> </choice> </sequence> </elementRule> </div> <div> <annotation> <documentation>Interface</documentation> </annotation> <elementRule role="export"> <ref label="annotation" occurs="?"/> </elementRule> <tag name="export"> <attribute name="label" required="true" type="NMTOKEN"/> </tag> <elementRule label="divInInterface"> <annotation> <documentation>div elements in interfaces</documentation> </annotation> <tag name="div"/> <sequence> <ref label="annotation" occurs="?"/> <choice occurs="*"> <ref label="export"/> <ref label="divInterface"/> </choice> </sequence> </elementRule> </div> <div> <annotation> <documentation>Include</documentation> </annotation> <elementRule role="include"> <ref label="annotation" occurs="?"/> </elementRule> <tag name="include"> <attribute name="moduleLocation" type="uriReference"/> </tag> </div> <div> <annotation> <documentation>Hedge Models</documentation> </annotation> <hedgeRule label="particle"> <annotation> <documentation>This is used to describe element hedge models. It is also used as subordinates of <sequence>, <choice>, and <mixed>. </documentation> </annotation> <choice> <ref label="refWithLabel"/> <ref label="hedgeRef"/> <ref label="choice"/> <ref label="sequence"/> <ref label="element"/> <ref label="none"/> <ref label="empty"/> </choice> </hedgeRule> <hedgeRule label="hedgeModel"> <choice> <hedgeRef label="particle"/> <ref label="mixed"/> </choice> </hedgeRule> <attPool role="repeatable"> <annotation> <documentation>This is used to specify the "occurs" attribute, which is shared by several elements.</documentation> </annotation> <attribute name="occurs" type="string"> <enumeration value="?"/> <enumeration value="*"/> <enumeration value="+"/> </attribute> </attPool> <elementRule role="hedgeRef" type="emptyString"/> <tag name="hedgeRef"> <ref role="repeatable"/> <attribute name="label" required="true" type="NCName"/> </tag> <elementRule label="refWithLabel" type="emptyString"> <annotation> <documentation>ref elements with the label attribute</documentation> </annotation> <tag name="ref"> <ref role="repeatable"/> <attribute name="label" required="true" type="NCName"/> <attribute name="role" type="none"/> </tag> </elementRule> <elementRule role="empty" type="emptyString"/> <tag name="empty"/> <elementRule role="choice"> <hedgeRef label="particle" occurs="*"/> </elementRule> <tag name="choice"> <ref role="repeatable"/> </tag> <elementRule role="sequence"> <hedgeRef label="particle" occurs="*"/> </elementRule> <tag name="sequence"> <ref role="repeatable"/> </tag> <elementRule role="none" type="emptyString"/> <tag name="none"/> <elementRule role="mixed"> <hedgeRef label="particle"/> </elementRule> <tag name="mixed"/> <elementRule label="element"> <annotation> <documentation>with the label attribute</documentation> </annotation> <tag name="element"> <ref role="repeatable"/> <attribute name="name" required="true" type="NCName"/> <attribute name="type" type="none"/> <attribute name="label" required="true" type="NCName"/> </tag> <sequence> <ref label="annotation" occurs="?"/> <hedgeRef label="facet" occurs="*"/> </sequence> </elementRule> <elementRule label="element"> <annotation> <documentation>with the type attribute</documentation> </annotation> <tag name="element"> <ref role="repeatable"/> <attribute name="name" required="true" type="NCName"/> <attribute name="type" required="true" type="NCName"/> <attribute name="label" type="none"/> </tag> <sequence> <ref label="annotation" occurs="?"/> <hedgeRef label="facet" occurs="*"/> </sequence> </elementRule> </div> <div> <annotation> <documentation>Rules</documentation> </annotation> <elementRule label="elementRule"> <annotation> <documentation>without embedded tag or attPool elements</documentation> <documentation>with the type attribute</documentation> </annotation> <tag name="elementRule"> <attribute name="role" required="true" type="NCNAME"/> <attribute name="label" type="NCName"/> <attribute name="type" type="NCName" required="true"/> </tag> <ref label="annotation" occurs="?"/> </elementRule> <elementRule label="elementRule"> <annotation> <documentation>with embedded tag or attPool elements</documentation> <documentation>with the type attribute</documentation> </annotation> <tag name="elementRule"> <attribute name="role" type="none"/> <attribute name="label" required="true" type="NCName"/> <attribute name="type" type="NCName" required="true"/> </tag> <sequence> <ref label="annotation" occurs="?"/> <choice> <ref label="tagInRule" occurs="+"/> <ref label="attPoolInRule" occurs="+"/> </choice> </sequence> </elementRule> <elementRule label="elementRule"> <annotation> <documentation>without embedded tag or attPool elements</documentation> <documentation>with a hedge model</documentation> </annotation> <tag name="elementRule"> <attribute name="role" required="true" type="NCName"/> <attribute name="label" type="NCName"/> <attribute name="type" type="none"/> </tag> <sequence> <ref label="annotation" occurs="?"/> <hedgeRef label="hedgeModel"/> </sequence> </elementRule> <elementRule label="elementRule"> <annotation> <documentation>with embedded tag or attPool elements</documentation> <documentation>with a hedge model</documentation> </annotation> <tag name="elementRule"> <attribute name="role" type="none"/> <attribute name="label" required="true" type="NCName"/> <attribute name="type" type="none"/> </tag> <sequence> <ref label="annotation" occurs="?"/> <choice> <ref label="tagInRule" occurs="+"/> <ref label="attPoolInRule" occurs="+"/> </choice> <hedgeRef label="hedgeModel"/> </sequence> </elementRule> <elementRule role="hedgeRule"> <sequence> <ref label="annotation" occurs="?"/> <hedgeRef label="hedgeModel"/> </sequence> </elementRule> <tag name="hedgeRule"> <attribute name="label" required="true" type="NCName"/> </tag> </div> <div> <annotation> <documentation>Clauses</documentation> </annotation> <hedgeRule label="clauseBody"> <sequence> <ref label="annotation" occurs="?"/> <ref label="refWithRole" occurs="*"/> <ref label="attribute" occurs="*"/> </sequence> </hedgeRule> <elementRule role="tag"> <hedgeRef label="clauseBody"/> </elementRule> <tag name="tag"> <attribute name="role" type="NCName"/> <attribute name="name" required="true" type="NCName"/> </tag> <elementRule label="tagInRule"> <annotation> <documentation>tag elements embedded in elementRules</documentation> </annotation> <tag name="tag"> <attribute name="role" type="none"/> <attribute name="name" required="true" type="NCName"/> </tag> <hedgeRef label="clauseBody"/> </elementRule> <elementRule role="attPool"> <hedgeRef label="clauseBody"/> </elementRule> <tag name="attPool"> <attribute name="role" required="true" type="NCName"/> </tag> <elementRule label="attPoolInRule"> <annotation> <documentation>attPool elements embedded in elementRules</documentation> </annotation> <tag name="attPool"> <attribute name="role" type="none"/> </tag> <hedgeRef label="clauseBody"/> </elementRule> <elementRule label="refWithRole" type="emptyString"> <annotation> <documentation>ref elements with the role attribute</documentation> </annotation> <tag name="ref"> <attribute name="role" required="true" type="NCName"/> <attribute name="label" type="none"/> </tag> </elementRule> <elementRule role="attribute"> <sequence> <ref label="annotation" occurs="?"/> <ref label="facet" occurs="*"/> </sequence> </elementRule> <tag name="attribute"> <attribute name="name" required="true" type="NMTOKEN"> <annotation> <documentation>Since RELAX Core is concerned with a single namespace, NCName might be more appropriate. However, xml:space and xml:lang are so common that RELAX Core should allow them. Please do not other qualified attribute values. </documentation> </annotation> </attribute> <attribute name="type" type="NCName"/> <attribute name="required" type="NMTOKEN"> <enumeration value="true"/> </attribute> </tag> </div> </module>
<?xml version="1.0" encoding="utf-8"?> <!-- $Id: datatypes.rlx 1.5 2000/04/15 08:22:19 murata Exp $ --> <!DOCTYPE module SYSTEM "relaxCore.dtd"> <!-- generated by DTD2RELAX 1.0.1 --> <module moduleVersion="1.0" relaxCoreVersion="1.0" xmlns="http://www.xml.gr.jp/xmlns/relaxCore"> <hedgeRule label="minBound"> <choice> <ref label="minInclusive"/> <ref label="minExclusive"/> </choice> </hedgeRule> <hedgeRule label="maxBound"> <choice> <ref label="maxInclusive"/> <ref label="maxExclusive"/> </choice> </hedgeRule> <hedgeRule label="bounds"> <choice> <hedgeRef label="minBound"/> <hedgeRef label="maxBound"/> </choice> </hedgeRule> <hedgeRule label="numeric"> <choice> <ref label="precision"/> <ref label="scale"/> </choice> </hedgeRule> <hedgeRule label="ordered"> <choice> <hedgeRef label="bounds"/> <hedgeRef label="numeric"/> </choice> </hedgeRule> <hedgeRule label="unordered"> <choice> <ref label="pattern"/> <ref label="enumeration"/> <ref label="length"/> <ref label="maxLength"/> <ref label="minLength"/> <ref label="encoding"/> <ref label="period"/> <ref label="duration"/> </choice> </hedgeRule> <hedgeRule label="facet"> <choice> <hedgeRef label="ordered"/> <hedgeRef label="unordered"/> </choice> </hedgeRule> <hedgeRule label="facetModel"> <ref label="annotation" occurs="?"/> </hedgeRule> <attPool role="facetAttrs"> <attribute name="value" required="true"/> </attPool> <hedgeRule label="facetModel"> <hedgeRef label="facetModel"/> </hedgeRule> <!-- RELAX Core published as JIS TR in 2000/5 does not have user-defined types. But this may change in the future. Comments? <elementRule role="simpleType"> <sequence> <ref label="annotation" occurs="?"/> <hedgeRef label="facet" occurs="*"/> </sequence> </elementRule> <tag name="simpleType"> <attribute name="name" type="NMTOKEN"/> <attribute name="base" required="true" type="string"/> </tag> --> <elementRule role="maxExclusive"> <hedgeRef label="facetModel"/> </elementRule> <tag name="maxExclusive"> <ref role="facetAttrs"/> </tag> <elementRule role="minExclusive"> <hedgeRef label="facetModel"/> </elementRule> <tag name="minExclusive"> <ref role="facetAttrs"/> </tag> <elementRule role="maxInclusive"> <hedgeRef label="facetModel"/> </elementRule> <tag name="maxInclusive"> <ref role="facetAttrs"/> </tag> <elementRule role="minInclusive"> <hedgeRef label="facetModel"/> </elementRule> <tag name="minInclusive"> <ref role="facetAttrs"/> </tag> <elementRule role="precision"> <hedgeRef label="facetModel"/> </elementRule> <tag name="precision"> <attribute name="value" required="true" type="positive-integer"/> </tag> <elementRule role="scale"> <hedgeRef label="facetModel"/> </elementRule> <tag name="scale"> <attribute name="value" required="true" type="non-negative-integer"/> </tag> <elementRule role="length"> <hedgeRef label="facetModel"/> </elementRule> <tag name="length"> <attribute name="value" required="true" type="non-negative-integer"/> </tag> <elementRule role="minLength"> <hedgeRef label="facetModel"/> </elementRule> <tag name="minLength"> <attribute name="value" required="true" type="non-negative-integer"/> </tag> <elementRule role="maxLength"> <hedgeRef label="facetModel"/> </elementRule> <tag name="maxLength"> <attribute name="value" required="true" type="non-negative-integer"/> </tag> <elementRule role="enumeration"> <hedgeRef label="facetModel"/> </elementRule> <tag name="enumeration"> <ref role="facetAttrs"/> </tag> <elementRule role="pattern"> <hedgeRef label="facetModel"/> </elementRule> <tag name="pattern"> <ref role="facetAttrs"/> </tag> <elementRule role="encoding"> <hedgeRef label="facetModel"/> </elementRule> <tag name="encoding"> <attribute name="value" required="true" type="MNTOKEN"> <enumeration value="hex"> <annotation> <documentation>each (8-bit) byte is encoded as a sequence of 2 hexidecimal digits</documentation> </annotation> </enumeration> <enumeration value="base64"> <annotation> <documentation>value is encoded in Base64 as defined in the MIME RFC</documentation> </annotation> </enumeration> </attribute> </tag> <elementRule role="period"> <hedgeRef label="facetModel"/> </elementRule> <tag name="period"> <attribute name="value" required="true" type="timeDuration"/> </tag> <elementRule role="duration"> <hedgeRef label="facetModel"/> </elementRule> <tag name="duration"> <ref role="facetAttrs"/> </tag> <elementRule role="annotation"> <choice occurs="*"> <ref label="appinfo"/> <ref label="documentation"/> </choice> </elementRule> <tag name="annotation"/> <elementRule role="appinfo"> <mixed><empty/></mixed> </elementRule> <tag name="appinfo"> <attribute name="source" type="string"/> </tag> <elementRule role="documentation"> <mixed><empty/></mixed> </elementRule> <tag name="documentation"> <attribute name="source" type="string"/> <attribute name="xml:lang" type="string"/> </tag> </module>