Sto provando a utilizzare xmllint per verificare il mio lavoro durante lo sviluppo di uno schema XSD i.e. XML Schema di base. Tuttavia mi sta dando un erroreErrore di convalida xmllint "Nessun DTD trovato" durante l'utilizzo di XSD
Convalida non riuscita: nessuna DTD trovata.
Cosa sto sbagliando?
mio comando xmllint:
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 file XSD:
<?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 file XML:
<?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>
L'URL a xsi: noNamespaceSchemaLocation fa restituire il XSD sopra. Inoltre, ho scaricato il file xsd e l'ho inserito nella directory corrente come misura aggiuntiva, ma questo non sembrava aver cambiato nulla.
Ora che funziona, dovrei commentare che l'utilizzo di un file locale o la specifica di uno schema remoto funziona altrettanto bene, ad es. --schema simple.xsd OR --schema http://lucas.ucs.ed.ac.uk/xml-schema/xmlns/simple.xsd – Tristan