附属書B. RELAX CoreによるRELAX Namespaceの記述

この附属書は,RELAX Namespaceの構文をRELAXモジュールによって記述す る。このRELAXモジュールの公開識別子及びURIを次に示す。

RELAXモジュールをつぎに示す。

<?xml version="1.0" encoding="us-ascii"?>
<!--
Module for RELAX Namespace (Ver 1.0)
$Id: relaxNamespace.rxm 1.7 2001/02/13 14:20:10 murata Exp $
-->
<!DOCTYPE module
       PUBLIC "-//RELAX//RELAX Core Version 1.0//JA"
       http://www.xml.gr.jp/relax/core1/relaxCore.dtd
>

<module 
  moduleVersion="1.0"
  relaxCoreVersion="1.0"
  targetNamespace="http://www.xml.gr.jp/xmlns/relaxNamespace"
  xmlns="http://www.xml.gr.jp/xmlns/relaxCore">

  <interface>
    <export label="grammar"/>
  </interface>

  <hedgeRule label="annotationInGrammar">
    <empty/>
  </hedgeRule>

  <elementRule role="grammar">
    <sequence>
      <hedgeRef label="annotationInGrammar"/>
      <choice occurs="*">
        <hedgeRef label="namespace"/>
        <hedgeRef label="include"/>
      </choice>
      <ref label="topLevel" occurs="?"/>
        <choice occurs="*">
          <hedgeRef label="namespace"/>
          <hedgeRef label="include"/>
        </choice>
      </sequence>
    </elementRule>
    
    <tag name="grammar">
      <attribute name="relaxNamespaceVersion" type="string" required="true">
        <enumeration value="1.0"/>
      </attribute>
      <attribute name="grammarVersion" type="string"/>
    </tag>
    
    <hedgeRule label="namespaceContentWithLocation">
      <empty/>
    </hedgeRule>

    <elementRule role="namespaceWithLocation" label="namespace">
      <hedgeRef label="namespaceContentWithLocation"/>
    </elementRule>

    <tag name="namespace" role="namespaceWithLocation">
      <attribute name="name" required="true" type="uriReference"/>
      <attribute name="language" type="uriReference"/>
      <attribute name="moduleLocation" required="true" type="uriReference"/>
      <attribute name="validation">
        <enumeration value="false"/>
      </attribute>
    </tag>

    <hedgeRule label="namespaceContentWithoutLocation">
      <none/>
    </hedgeRule>

    <elementRule role="namespaceWithoutLocation" label="namespace">
      <hedgeRef label="namespaceContentWithoutLocation"/>
    </elementRule>

    <tag name="namespace" role="namespaceWithoutLocation">
      <attribute name="name" required="true" type="uriReference"/>
      <attribute name="language" type="none"/>
      <attribute name="moduleLocation" type="none"/>
      <attribute name="validation">
        <enumeration value="false"/>
      </attribute>
    </tag>

    <hedgeRule label="includeContent">
      <empty/>
    </hedgeRule>

    <elementRule role="include">
      <hedgeRef label="includeContent"/>
    </elementRule>
    
    <tag name="include">
      <attribute name="grammarLocation" type="uriReference" required="true"/>
    </tag>

    <hedgeRule label="topLevelContent">
      <none/>
    </hedgeRule>

    <elementRule role="topLevel">
      <hedgeRef label="topLevelContent"/>
    </elementRule>
    
    <tag name="topLevel"/>

</module>