Ich versuche, xmllint zu verwenden, um meine Arbeit während der Entwicklung eines grundlegenden XSD, d. H. XML Schema Schema zu überprüfen. Aber es gibt mir einen Fehlerxmllint Validierungsfehler "keine DTD gefunden" bei der Verwendung von XSD
Validierung fehlgeschlagen: keine DTD gefunden.
Was mache ich falsch?
Mein xmllint Befehl:
xmllint --noout --valid --schema simple.xsd lucas-basic.xml
lucas-basic.xml:5: validity error : Validation failed: no DTD found !
>
^
lucas-basic.xml validates
Test-XSD-Datei:
<?xml version = "1.0" encoding = "UTF-8"?>
<!--Generated by XML Authority. Conforms to w3c http://www.w3.org/2001/XMLSchema-->
<xsd:schema xmlns:xsd = "http://www.w3.org/2001/XMLSchema">
<xsd:element name = "vehicles">
<xsd:complexType>
<xsd:sequence>
<xsd:element name = "nickname" type = "xsd:string" maxOccurs = "unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Test-XML-Datei:
<?xml version="1.0"?>
<vehicles
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation = "http://lucas.ucs.ed.ac.uk/xml-schema/xmlns/simple.xsd"
>
<nickname>Bog Hopper</nickname>
<nickname>Wee Beastie</nickname>
<nickname>Count Zero</nickname>
</vehicles>
Die URL an xsi: noNamespaceSchemaLocation funktioniert die oben XSD zurück. Außerdem habe ich die xsd-Datei heruntergeladen und als zusätzliche Maßnahme in das aktuelle Verzeichnis gestellt, aber das hat anscheinend nichts geändert.
Nun, da ich es funktioniert habe, sollte ich kommentieren, dass die Verwendung einer lokalen Datei oder die Angabe eines entfernten Schemas genauso gut funktioniert, z. --schema simple.xsd ODER --schema http://lucas.ucs.ed.ac.uk/xml-schema/xmlns/simple.xsd – Tristan