XML验证致命错误 - 必须很好地形成根元素后面的文档中的标记

时间:2012-04-30 06:21:37

标签: xml dtd xml-validation

当我尝试验证以下XML代码时,我收到错误(致命错误 - 根元素后面的文档中的标记必须格式正确):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE manufacturer[
    <!ELEMENT manufacturer (companyName, address, phone, contactPerson?, products)>
    <!ATTLIST manufacturer identifier CDATA #REQUIRED>
    <!ELEMENT companyName (#PCDATA)>
    <!ELEMENT address (#PCDATA)>
    <!ELEMENT phone (#PCDATA)>
    <!ELEMENT contactPerson (#PCDATA)>
    <!ELEMENT products (product+)>
    <!ELEMENT product (model, price, description, category)>
    <!ATTLIST product code CDATA #REQUIRED>
    <!ELEMENT model (#PCDATA)>
    <!ELEMENT price (#PCDATA)>
    <!ELEMENT description (#PCDATA)>
    <!ELEMENT category (#PCDATA)>
]>

<manufacturer identifier = "m1">
    <companyName>Kitchen Manufacturers International</companyName>
    <address>1256 Factory Lane, Cleveland, OH 44111</address>
    <phone>216-333-4444</phone>
    <contactPerson>Fred Smith</contactPerson>
    <products>
        <product code = "X345">
            <model>Sun Beam Mixer</model>
            <price>14.75</price>
            <description>Popular handheld mixer</description>
            <category>household</category>
        </product>
        <product code = "MW30">
            <model>GE30 Microwave</model>
            <price>99.95</price>
            <description>A popular model</description>
            <category>household</category>
        </product>
    </products>
</manufacturer>

<manufacturer identifier = "m3">
    <companyName>Kraft Foods Incorporated</companyName>
    <address>1515 Kraft Avenue, Chicago, IL 37897</address>
    <phone>222-333-4444</phone>
    <products>
        <product code = "345DR">
            <model>Jiffy Peanut Butter</model>
            <price>4.95</price>
            <description>America’s favorite, made from real peanuts</description>
            <category>groceries</category>
        </product>
        <product code = "321SD">
            <model>Mac N' Cheese</model>
            <price>1.99</price>
            <description>Every child’s favorite dinner</description>
            <category>groceries</category>
        </product>
        <product code = "123DD">
            <model>Rice Krispies</model>
            <price>2.99</price>
            <description>Snap Crackle and Pop</description>
            <category>groceries</category>
        </product>
    </products>
</manufacturer>

这里发生代码错误,我很困惑为什么这个错误,以及为什么其他类似的行没有错误:

<manufacturer identifier = "m3">

1 个答案:

答案 0 :(得分:1)

XML只允许一个根元素,你有两个(manufacturer)。