| ENGLISH | JAPANESE |
| << | リラックスのしかた/第一部: RELAX Core/STEP 6: デフォルト値,実体,記法 | >> |
default属性をattribute要素に導入して,属性のデフォルトを指定できるようにします.しかし,既存のパーサはXML文書の解析時にRELAXモジュールをいっさい見てくれません.したがって,default属性もとうぜん使いません.実体や記法を宣言するための構文をRELAXに導入しても,やはり同じことです.
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE person [ <!ATTLIST person bloodType CDATA "A"> ]> <person/> |
この文書と照合するRELAXモジュールを示します.
<module
moduleVersion="1.0"
relaxCoreVersion="1.0"
xmlns="http://www.xml.gr.jp/xmlns/relaxCore">
<interface>
<export label="person"/>
</interface>
<elementRule role="person">
<empty/>
</elementRule>
<tag name="person">
<attribute name="bloodType">
<enumeration value="O"/>
<enumeration value="A"/>
<enumeration value="B"/>
<enumeration value="AB"/>
</attribute>
</tag>
</module>
|
この例では,DTDの側でデフォルト値"A"を指定しています.XMLパーサは,これを利用してくれます.RELAXモジュールに照らしてこのXML文書を検証することも問題なく可能です."A"が属性値として指定された場合とまったく同様にして検証は行われます.
同様に,実体や記法もDTDで記述することができます.まず,解析対象実体の例を示します.
<?xml version="1.0"?> <!DOCTYPE doc [ <!ENTITY foo "This is a pen"> ]> <doc> <para>&foo;</para> </doc> |
この文書は,次のRELAXモジュールに従っています.
<module
moduleVersion="1.0"
relaxCoreVersion="1.0"
xmlns="http://www.xml.gr.jp/xmlns/relaxCore">
<interface>
<export label="doc"/>
</interface>
<elementRule role="doc">
<ref label="para" occurs="*"/>
</elementRule>
<elementRule role="para" type="string"/>
<tag name="doc"/>
<tag name="para"/>
</module>
|
つぎに,解析対象外実体と記法を用いた例を示します.
<?xml version="1.0"?> <!DOCTYPE doc [ <!NOTATION eps PUBLIC "-//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Adobe Systems Encapsulated Postscript//EN"> <!ENTITY logo_eps SYSTEM "logo.eps" NDATA eps> <!ELEMENT doc EMPTY> <!ATTLIST doc logo ENTITY #IMPLIED> ]> <doc logo="logo_eps"/> |
この文書も,次のRELAXモジュールに従っています.
<module
moduleVersion="1.0"
relaxCoreVersion="1.0"
xmlns="http://www.xml.gr.jp/xmlns/relaxCore">
<interface>
<export label="doc"/>
</interface>
<elementRule role="doc" type="emptyString"/>
<tag name="doc">
<attribute name="logo" type="ENTITY"/>
</tag>
</module>
|
| << | リラックスのしかた/第一部: RELAX Core/STEP 6: デフォルト値,実体,記法 | >> |