2016-06-26 17 views
2

Ich versuche, eine XML-Datei zu analysieren unten gezeigt:XML-Fehler: Öffnen Angebot für Attribut-ID erwartet wird, in Verbindung mit einem Elementtyp

<?xml version="1.0"?> 
<!DOCTYPE COUNTRIES_CONTINENT PUBLIC 
      "-//XYZ//DTD Declarations(CountriesContinent)//EN" "dtds/countries_continent.dtd"> 
<COUNTRIES_CONTINENT> 
    <CONTINENT id="6" name="Oceania" value="12"> 
     <COUNTRY name="Argentina"/> 
     <COUNTRY name="Bolivia"/> 
     <COUNTRY name="Brazil"/> 
     <COUNTRY name="Chile"/> 
     <COUNTRY name="Colombia"/> 
     <COUNTRY name="Ecuador"/> 
     <COUNTRY name="Guyana"/> 
     <COUNTRY name="Paraguay"/> 
     <COUNTRY name="Peru"/> 
     <COUNTRY name="Suriname"/> 
     <COUNTRY name="Uruguay"/> 
     <COUNTRY name="Venezuela"/> 
    </CONTINENT> 
</COUNTRIES_CONTINENT> 

die folgende DTD-Datei zu haben:

<!ELEMENT COUNTRIES_CONTINENT (CONTINENT+)> 
<!ELEMENT CONTINENT (COUNTRY+)> 
<!ELEMENT COUNTRY EMPTY> 
<!ATTLIST CONTINENT id CDATA ID #REQUIRED> 
<!ATTLIST CONTINENT name CDATA #REQUIRED> 
<!ATTLIST CONTINENT value CDATA #REQUIRED> 
<!ATTLIST COUNTRY name CDATA #REQUIRED> 

I bekomme die folgende Ausnahme:

Open quote is expected for the attribute "id" associated with an element type "CONTINENT". 

Kann jemand darauf hinweisen, was schief läuft?

Antwort

2
<!ATTLIST CONTINENT id CDATA ID #REQUIRED> 

Der Attributtyp kann entweder CDATA oder ID sein, aber es kann nicht beides sein. Jeder dieser Typen hat seine eigenen Regeln, die die Wertebereiche beschreiben, die er enthalten darf. Bitte prüfen Sie, welcher Typ für Sie die erwartete ist id.

siehe http://www.w3schools.com/xml/xml_dtd_attributes.asp