0

ほとんどの場合に指定されているxmlファイルがあります。1つの要素のみに仕様がなく、任意のxml要素を含めることができます。

このxmlの例を次に示します。

<root_element>
  <specified_element>
     <empty_child_node/> 
  </specified_element>
  <element_with_free_form>
    <what><ever><xml><which><is><valid><xml>
    </xml></valid></is></which></xml></ever></what>
  </element_with_free_form>
</root_element>

DTDについての私の理解は、これがこの種のxmlの有効な仕様であるはずだということです。

<?xml version="1.0" encoding="utf-8"?>
<!ELEMENT root_element (specified_element, element_with_free_form)>
<!ELEMENT specified_element (empty_child_node)>
<!ELEMENT empty_child_node EMPTY>
<!ELEMENT element_with_free_form ANY>

これは、DTDが埋め込まれた完全なxmlドキュメントです。

<!DOCTYPE root_element [
<!ELEMENT root_element (specified_element, element_with_free_form)>
<!ELEMENT specified_element (empty_child_node)>
<!ELEMENT empty_child_node EMPTY>
<!ELEMENT element_with_free_form ANY>
]>
<root_element>
  <specified_element>
     <empty_child_node/> 
  </specified_element>
  <element_with_free_form>
    <what><ever><xml><which><valid><xml>
    </xml></valid></which></xml></ever></what>
  </element_with_free_form>
</root_element>

私は何を間違っているのですか?

4

2 に答える 2

0

element_with_free_formは として宣言されていますがANY、その中の要素も宣言する必要があります。つまり、 、 、 、 、および の宣言もwhat必要everxmlなりwhichますvalid

于 2012-04-11T14:13:11.867 に答える
0

DevNull が既に述べたように、キーワードは、宣言されている要素が、DTD で宣言された および任意の要素 ANYの混合を含むことができることを意味します。#PCDATA

element_with_free_formバランスの取れた XML を含むことができると宣言したい場合、DTD は適切なスキーマ言語ではありません。XSD はそのような要素を宣言でき、「構造が何であるかは気にしませんが、子はすべて宣言されている必要があります」(これは と同じ機能ANYです) や「それを検証し、それに対する宣言がない場合はそのままにしておいてください」(これは、HTML の「理解していないものは無視する」という原則の最初の近似値です)。

于 2012-08-22T01:07:07.873 に答える