プロが教える店舗&オフィスのセキュリティ対策術

以下のXMLをDTDに使用としています。
B以降の設定の方法が分かりません。
よろしくお願い致します。

XML
- <Aブロック>
- <A a番号="01" b="xxxx" c="x">
<B 番号="1" d="xxxx" />
<B 番号="2" d="xxxx" />
<B 番号="3" d="xxxx" />
</A>

DTD
<!ELEMENT Aブロック (A*)>
<!ELEMENT A EMPTY>
<!ATTLIST A a CDATA #REQUIRED>
<!ATTLIST A b CDATA #REQUIRED>
<!ATTLIST A c CDATA #REQUIRED>

A 回答 (2件)

#1>「名前トークンを使用」とはなんですか?


名前に使用できる文字のことです。

「名前」には先頭に使えない文字があります。
例えば、数字がそうです。
「名前」の先頭には使えないが名前に使える文字を含めて
「名前」の構成文字という意味で「名前トークン」といいます。
つまり
NMTOKEN は"NAME TOKEN"というということですね。

"番号" は、数字を意味するようにしたいのですが、
SGMLでは NUMBER というのがあるのですが、XMLではこれがありません(スキーマはまた別の話として)。
それで他のモノを使う必要があるのですが
CDATA だと何でもいいということになり
ID (「名前」)だと数字で始めることができないので
NMTOKEN ということにしました。
こうしておけば、先頭が数字から始められてある程度限定することができます。
    • good
    • 0
この回答へのお礼

いろいろ勉強してきます。
また、回答ありがとうございます。

お礼日時:2006/10/15 22:56

以下のような感じでいいかと思います。

細部は修正下さい。
全角英字は、名前に使えなかったと思うので修正してあります。
また、ATTLIST は、まとめることができます。
----------------------------------------------------------------
<!ELEMENT ABlock (A*)>
<!ELEMENT A (B*)>
<!ATTLIST A a CDATA #REQUIRED>
<!ATTLIST A b CDATA #REQUIRED>
<!ATTLIST A c CDATA #REQUIRED>
<!ELEMENT B EMPTY>
<!ATTLIST B 番号 NMTOKEN #REQUIRED
d CDATA #REQUIRED>
    • good
    • 0
この回答へのお礼

ありがとうございます。
NMTOKENは「名前トークンを使用」と書いてありますが、実際はどのように使用するのかわかりません。「名前トークンを使用」とはなんですか?

お礼日時:2006/10/14 12:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!