0

I'm getting an error (Fatal Error - The Markup in the document following the root element must be well formed) when I try to validate the following XML code:

<?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>

The code error occurs here, I'm confused as to why this errors, and why the other similar line doesn't error:

<manufacturer identifier = "m3">
kmaz13
  • 260
  • 1
  • 5
  • 14

1 Answers1

1

XML allows only one root element, you have two (manufacturer).

Francis Upton IV
  • 19,322
  • 3
  • 53
  • 57