私はXMLに不慣れで、現在文書型宣言について学んでいます。とにかく、DTDの本体で要素を宣言する場合、要素名は、名前空間プレフィックスを含め、XMLドキュメント内で正確に表示される必要があります。つまり、ユーザーは独自の名前空間を定義できませんが、DTD内で定義されたプレフィックスを使用する必要があります。
a)DTD内で定義されたプレフィックスを使用する必要がある場合でも、これらのプレフィックスが指すURIを選択できると思いますか?
b)(DTDで)要素を宣言すると仮定すると、persは名前空間プレフィックスですが、XMLドキュメント内のこの要素のすべてのオカレンスにプレフィックス「pers」を含める必要があることを意味しますか?その場合、DTDではデフォルトの名前空間機能を使用できないことを意味しますか?!
ありがとう
編集:
a)
実際、特に正当な理由がある場合、または単純な構文要件があり、名前空間が必要ない場合を除いて、代わりにXMLスキーマの使用を検討する必要があります。
代わりにXMLスキーマを使用する予定ですが、DTDの基本についても学びたいと思います。
b)
…名前空間URI(デフォルトの名前空間)の概念はありません。
DTD内で「xmlns」という名前の属性を宣言する場合:
<!ATTLIST contact xmlns CDATA #REQUIRED>
その場合、XMLドキュメントはデフォルトの名前空間機能を使用できます(ここでは、子要素<name>
はデフォルトの名前空間にあります)。
...
<contact xmlns=”www.somewhere.com” … >
<name></name>
</contact>
...
ありがとう