2011-10-25 10 views
3

内部的にどの要素をDTDのルート要素にするかを定義することは可能ですか?言い換えれば、DTDが別のファイルにあるときにルート要素を定義することは可能ですか?DTDルート要素

+0

「内部的に」と言えば、DTDを含まないファイルを意味しますか? – LarsH

+0

通常、別のファイルにdtdを書き、<!DOCTYPE "root-element" "dtd-url">というXML文書(別のファイル)を書き込む前に、私の質問です:dtdファイル内のルート要素を指定する別の方法はありますか? – temelm

+0

いいえ、ありません – StaxMan

答えて

5

ルート要素は、DOCTYPE宣言によって決定されます。ルート要素は、DTD内の任意の要素にすることができます。 (test.dtd)以下DTD、例えば

bookは、通常、ルート要素であろう:

:我々はDOCTYPEに sectionを使用する場合

<!ELEMENT book (chapter+)> 
<!ELEMENT chapter (section+)> 
<!ELEMENT section EMPTY> 

しかしながら、sectionは、ルート要素であります

<!DOCTYPE section SYSTEM "test.dtd"> 
<section/> 

私は外部DTDでDOCTYPEの宣言を使用して直接ルート要素を指定していますが、この仕様では許可されていないと思います。私がやったのはDOCTYPEを外部のDTDに入れて、DOCTYPEをXMLファイルから削除することでした。私は使用していたプログラムのコマンドラインでDTDとXMLファイルを関連付けることができました。