Ich habe eine lokale DTD-Datei test.dtd. Inhalt ist:xmllint: Wie validiere ich ein XML mit einer lokalen DTD-Datei
<!DOCTYPE coord [
<!ELEMENT coord (date)>
<!ELEMENT date (#PCDATA)>
]>
Ich möchte ein XML mit Xmllint validieren. Diese XML hat keine DOCTYPE drin:
<?xml version="1.0" encoding="x-mac-roman"?>
<coord>
<date>20150312</date>
</coord>
Kein Problem, wenn ich den DTD-Block als zweite Zeile in eine Kopie meiner XML-Datei und die Nutzung ein:
xmllint --valid --noout my2.xml
Aber wenn ich versuche:
xmllint --loaddtd test.dtd --valid --noout my.xml
xmllint --dtdvalid test.dtd --noout my.xml
beide funktionieren nicht. Das outout ist:
test.dtd:1: parser error : Content error in the external subset
<!DOCTYPE coord [
^
test.dtd:1: parser error : Content error in the external subset
<!DOCTYPE coord [
^
Could not parse DTD test.dtd
Irgendwelche Idee? Es scheint, dass mein XML MUSS eine DOCTYPE-Zeile (mit Schlüsselwort SYSTEM) enthält, um auf die externe DOCTYPE-Datei zu verweisen, die ich vermeiden möchte. Siehe: http://www.w3schools.com/dtd/
Gibt es eine Lösung ohne Änderung der XML?
Was ist die Ausgabe von diesem Befehl? – hek2mgl
Es sieht so aus als wäre etwas mit der DTD falsch. Ist es nicht? – hek2mgl
Nein, weil, wenn ich diesen DTD-Text in das XML einfügen, wie es ist, funktioniert es. Vielleicht brauche ich eine einführende Zeile in der DTD-Textdatei? –