2

私はこのようなXMLドキュメントを持っています:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE school SYSTEM ""> 
<school> 
    <data> 
        <id>
            <uid>1</uid> 
        </id>
        <information>
            <name>Michael</name>
            <surename>Julius</surename>
        </information>
        <note> 
            <test>hans</test>

        </note> 
    </data> 
</school> 

およびDTDファイル

<!ELEMENT school (data)> 
<!ELEMENT data (id,information,note)> 
<!ELEMENT id (uid)> 
<!ELEMENT uid (#PCDATA)>
<!ELEMENT information (name,surename?)> 
<!ELEMENT name (#PCDATA)> 
<!ELEMENT surename (#PCDATA)> 
<!ELEMENT note (#PCDATA)>  <--- unknown element type

<note>次のようなオプションの要素タイプで要素を定義したい

<note> 
  <test2>test2</test2>
</note>

また

<note>
  <unknown name></unknown name>
</note>

何か助けはありますか?ありがとう

4

1 に答える 1

2

ANYの要素宣言で使用できますnote。これにより、任意の要素をの子にすることができますnoteが、その要素も定義する必要があります(要素宣言が必要です)。未定義の要素を持つことはできません。

note宣言例:

<!ELEMENT note ANY>

インスタンスの例(DTDは外部にすることができますが、テストが簡単だったため、内部サブセットを使用しました):

<!DOCTYPE school [
<!ELEMENT school (data)> 
<!ELEMENT data (id,information,note)> 
<!ELEMENT id (uid)> 
<!ELEMENT uid (#PCDATA)>
<!ELEMENT information (name,surename?)> 
<!ELEMENT name (#PCDATA)> 
<!ELEMENT surename (#PCDATA)> 
<!ELEMENT note ANY>
<!ELEMENT test2 (#PCDATA)><!--The element "test2" still has to be declared.-->
]> 
<school> 
    <data> 
        <id>
            <uid>1</uid> 
        </id>
        <information>
            <name>Michael</name>
            <surename>Julius</surename>
        </information>
        <note> 
            <test2>hans</test2>         
        </note> 
    </data> 
</school>
于 2012-07-11T15:49:12.517 に答える