XML-Dokumentstrukturen müssen innerhalb derselben Entity beginnen und enden?

flomueller

Neues Mitglied
Hallo zusammen,

bin sehr neu im Bereich Programmieren und arbeite aktuell im Rahmen meines Studiums an einer kleinen XML Aufgabe. Für die Zeile 36 bekomme ich die Meldung: XML-Dokumentstrukturen müssen innerhalb derselben Entity beginnen und enden. [36]
Kenne mich wie gesagt Null aus, wie kann man den Fehler beheben?


XML:
<?xml version="1.0" encoding="UTF-8?>                                          

<kontaktliste>
    <kontakt>                                                                 
        <adresse>                                                                 
        <person>                                                             
            <vorname>Hans</vorname>
            <nachname>Meier</nachname>
            <email>hansmeier@outlook.de</email>
            <telnr>
                <vorwahl>09876</vorwahl>
                <durchwahl>12345</durchwahl>
            </telnr>
        </person>
            <anschrift> 
                <strasse>Hauptstraße</strasse>
                <hausnr>1</hausnr>
                <plz>12345</plz> 
                <stadt>Buxtehude</stadt>
            </anschrift>
        <privatkunde/>                                                         
        </adresse>     
    </kontakt>

    <kontakt2>                                                                 
        Hans                                                                 
        Meier
        hansmeier@outlook.de
        09876/12345
        Hauptstraße
        1
        12345
        Buxtehude
        Privatkunde
    </kontakt2>
</kontaktliste>

Danke im Voraus. :)
 
Zuletzt bearbeitet:

german

Aktives Mitglied
devCommunity-Experte
Ich vermute das fehlende Anführungszeichen (rot) verursacht letztlich den Fehler.
<?xml version="1.0" encoding="UTF-8"?>
 

flomueller

Neues Mitglied
Wobei bekommst du den Fehler? Versuchst du gegen ein Schema zu validieren? Wie sieht das Schema aus?
Es ist ein XML Schema, falls du das meinst. Ich wollte eine DTD generieren, aber mit der Fehlermeldung klappt es nicht. Könntest du den Code bei dir vielleicht eingeben und schauen woran es liegen könnte?

Mein kompletter Code lautet:

XML:
<?xml version="1.0"?>                                    

<kontaktliste>
    <kontakt>                                                            
        <adresse>                                                                  
        <person>                                                              
            <vorname>Hans</vorname>
            <nachname>Meier</nachname>
            <email>hansmeier@outlook.de</email>
            <telnr>
                <vorwahl>09876</vorwahl>
                <durchwahl>12345</durchwahl>
            </telnr>
        </person>
            <anschrift>  
                <strasse>Hauptstraße</strasse>
                <hausnr>1</hausnr>
                <plz>12345</plz>  
                <stadt>Buxtehude</stadt>
            </anschrift>
        <privatkunde/>                                                        
        </adresse>      
    </kontakt>
    <kontakt_2>                                                              
        Hans                                                                  
        Meier
        hansmeier@outlook.de
        09876/12345
        Hauptstraße
        1
        12345
        Buxtehude
        Privatkunde
    </kontakt_2>
</kontaktliste>
 

lord_haffi

Moderator
Teammitglied
Als kleiner, gut gemeinter Hinweis: Wenn du möchtest, dass dir jemand sinnvoll weiterhelfen kann, solltest du genau angeben, was du machst und vor allem wie. Sonst kann man unter Umständen dein Problem (so wie auch hier) nicht reproduzieren.

Wenn ich das Ding, so wie du es gepostet hast, in meine IDE packe, kann der mir da ohne Probleme ein DTD draus generieren. Das ganze sieht dann übrigens so aus:
XML-Datei mit DTD inklusive:
<?xml version="1.0"?>

<!DOCTYPE kontaktliste [
        <!ELEMENT kontaktliste (kontakt|kontakt_2)*>
        <!ELEMENT kontakt (adresse)*>
        <!ELEMENT adresse (person|anschrift|privatkunde)*>
        <!ELEMENT person (vorname|nachname|email|telnr)*>
        <!ELEMENT vorname (#PCDATA)>
        <!ELEMENT nachname (#PCDATA)>
        <!ELEMENT email (#PCDATA)>
        <!ELEMENT telnr (vorwahl|durchwahl)*>
        <!ELEMENT vorwahl (#PCDATA)>
        <!ELEMENT durchwahl (#PCDATA)>
        <!ELEMENT anschrift (strasse|hausnr|plz|stadt)*>
        <!ELEMENT strasse (#PCDATA)>
        <!ELEMENT hausnr (#PCDATA)>
        <!ELEMENT plz (#PCDATA)>
        <!ELEMENT stadt (#PCDATA)>
        <!ELEMENT privatkunde (#PCDATA)>
        <!ELEMENT kontakt_2 (#PCDATA)>
        ]>
<kontaktliste>
    <kontakt>
        <adresse>
        <person>
            <vorname>Hans</vorname>
            <nachname>Meier</nachname>
            <email>hansmeier@outlook.de</email>
            <telnr>
                <vorwahl>09876</vorwahl>
                <durchwahl>12345</durchwahl>
            </telnr>
        </person>
            <anschrift>
                <strasse>Hauptstraße</strasse>
                <hausnr>1</hausnr>
                <plz>12345</plz>
                <stadt>Buxtehude</stadt>
            </anschrift>
        <privatkunde/>
        </adresse>
    </kontakt>
    <kontakt_2>
        Hans
        Meier
        hansmeier@outlook.de
        09876/12345
        Hauptstraße
        1
        12345
        Buxtehude
        Privatkunde
    </kontakt_2>
</kontaktliste>

Das DTD solltest du im Regelfall übrigens in eine Datei auslagern, das ist wie gesagt erstmal nur das, was meine IDE produziert hat.
 

german

Aktives Mitglied
devCommunity-Experte
Hmm, jetzt hast du DTD draus gemacht. Aber einen Fehler à la "Deklaration ... kann nicht gefunden werden" bekommt man nur wenn man gegen ein bestehendes Schema validiert. Ich versteh leider nicht was @flomueller hier tut. Sorry.
 
Oben Unten