2

オンラインで検証: http://xmlvalidator.new-studio.org

XML ドキュメント (下にも表示)

質問1

次の 6 つのエラーが表示されるのはなぜですか?

  1. 29行18列:型IDの属性値「1」は名前でなければなりません。
  2. 行 34 列 22: 要素タイプ「dob」に対して属性「type」を宣言する必要があります。
  3. 39 行目 26 列目: 要素型「address」に対して属性「type」を宣言する必要があります。
  4. 49 行目 18 列目: タイプ ID の属性値「2」は名前でなければなりません。
  5. 54 行目 22 列目: 要素型 "dob" に対して属性 "type" を宣言する必要があります。
  6. 59 行 27 列 : 要素型「address」に対して属性「type」を宣言する必要があります。

質問2

次の行のコメントを外すと、no. 4

<!ELEMENT persona (name,dob?,address*) >

AND 次の行番号をコメントします。5

<!ELEMENT name (first_name,last_name) >

次のエラーが表示されるのはなぜですか?

  • 4行目28列目:要素型「persona」の宣言には要素型が必要です。

DTD が埋め込まれた XML ドキュメント

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE personality [
<!ELEMENT personality (persona*) >
<!-- <!ELEMENT persona (#PCDATA|(name,dob?,address*))> -->
<!ELEMENT persona (name,dob?,address*) >
<!ELEMENT name (first_name,last_name) >
<!ELEMENT first_name (#PCDATA) >
<!ELEMENT last_name (#PCDATA) >
<!ELEMENT dob (date+,month+,year+) >
<!ELEMENT date (#PCDATA) >
<!ELEMENT month (#PCDATA) >
<!ELEMENT year (#PCDATA) >
<!ELEMENT address (building,street,city,state,country,country_code) >
<!ELEMENT building (#PCDATA) >
<!ELEMENT street (#PCDATA) >
<!ELEMENT city (#PCDATA) >
<!ELEMENT state (#PCDATA) >
<!ELEMENT country (#PCDATA) >
<!ELEMENT country_code (#PCDATA) >

<!ATTLIST persona id ID #REQUIRED >
<!ATTLIST name type (string|number) "string" >

]>

<?xml-stylesheet type="text/css" href="xmlstyle.css" ?>

<personality>
    <persona id="1">
        <name type="string">
            <first_name>Abhisek</first_name>
            <last_name>Pattnaik</last_name>
        </name>
        <dob type="number">
            <date>29</date>
            <month>8</month>
            <year>1990</year>
        </dob>
        <address type="string">
            <building>Plot-471</building>
            <street>Sahid Nagar</street>
            <city>Bhubaneswar</city>
            <state>Odisha</state>
            <country>India</country>
            <country_code>91</country_code>
        </address>
    </persona>
    
    <persona id="2">
            <name type="string">
                <first_name>Anindita</first_name>
                <last_name>Patnaik</last_name>
            </name>
        <dob type="number">
            <date>5</date>
            <month>12</month>
            <year>1996</year>
        </dob>
            <address type="string">
            <building>Plot-471</building>
            <street>Sahid Nagar</street>
            <city>Bhubaneswar</city>
            <state>Odisha</state>
            <country>India</country>
            <country_code>91</country_code>
        </address>
    </persona>
</personality>
4

1 に答える 1

4
Line 29 Column 18 : Attribute value "1" of type ID must be a name.
Line 49 Column 18 : Attribute value "2" of type ID must be a name.

タイプ ID の属性の値は、数字で始めることはできません。Nameこれは、最初の数字を除外する XML 仕様のプロダクションと一致する必要があります。


Line 34 Column 22 : Attribute "type" must be declared for element type "dob".
Line 39 Column 26 : Attribute "type" must be declared for element type "address".

and要素のtype属性を宣言していません。dobaddress


<!ELEMENT persona (#PCDATA|(name,dob?,address*))>

これ (上記の DTD でコメントアウトされている) は、違法な宣言です。以下は問題ありません(ただし、必要なものではない場合があります):

<!ELEMENT persona (#PCDATA|name|dob|address)*>

「混合コンテンツ」に関する制約については、を参照してください。

于 2013-01-09T20:34:34.977 に答える