附属書A. DTDによるRELAX Namespaceの記述

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

DTDをつぎに示す。

<?xml version="1.0" encoding="utf-8"?>
<!--
DTD for RELAX Namespace (Ver 1.0)

-->
<!--
Typical invocation

<!DOCTYPE framework SYSTEM 
 PUBLIC "-//RELAX//Module RELAX Namespace 1.0//JA"
 SYSTEM "http://www.xml.gr.jp/relax/namespace1/relaxNamespace.dtd">
-->
<!--*******************************************************-->
<!--                                                       -->  
<!--         Parameter entities for qualified names        -->
<!--                                                       -->  
<!--*******************************************************-->

<!ENTITY % nsPrefix "">
<!ENTITY % framework "%nsPrefix;framework">
<!ENTITY % namespace "%nsPrefix;namespace">
<!ENTITY % includeNamespace "%nsPrefix;include">
<!ENTITY % topLevel "%nsPrefix;topLevel">

<!--*******************************************************-->
<!--                                                       -->  
<!--         Parameter entities for customization          -->
<!--                                                       -->  
<!--*******************************************************-->

<!ENTITY % namespaceContent "EMPTY">
<!ENTITY % topLevelContent "EMPTY">

<!ENTITY % annotationInFramework "">
<!ENTITY % includeContent "EMPTY">
<!--*******************************************************-->
<!--                                                       -->  
<!--         The overall structure of RELAX frameworks     -->
<!--                                                       -->  
<!--*******************************************************-->


<!ELEMENT %framework;
        (%annotationInFramework; 
         (%namespace; | %includeNamespace;)*,
         (%topLevel;, (%namespace; | %includeNamespace;)*)? )>

<!ATTLIST %framework;
        relaxNamespaceVersion CDATA  #REQUIRED
        frameworkVersion    CDATA      #IMPLIED
        xmlns             CDATA      #FIXED "http://www.xml.gr.jp/xmlns/relaxNamespace"
>

<!ELEMENT %namespace;        %namespaceContent;>
<!ATTLIST %namespace;
        name              CDATA      #REQUIRED
        moduleLocation    CDATA      #IMPLIED
        language          CDATA      #IMPLIED
        validation        (false)    #IMPLIED
>

<!ELEMENT %includeNamespace; %includeContent;>
<!ATTLIST %includeNamespace; frameworkLocation CDATA #REQUIRED>

<!ELEMENT %topLevel; %topLevelContent;>