RE: [xml] XSchema and libxml



Hi,

-----Original Message-----
From: Hei Chan [mailto:structurechart yahoo com] 

Hi Kasimier,
I have a question about your really old post:
http://mail.gnome.org/archives/xml/2005-March/msg00048.html

I have tried your example with libxml 2.6.23.  It
gives me:

test.xml:6: element note: Schemas validity error :
Element '{http://www.w3schools.com}note': No matching
global declaration available for the validation root.
The document 'test.xml' is not valid.

I get the following with your scenario:

xmllint --noout --schema http://localhost:8080/text.xsd test.xml
test.xml validates

Here is the XML:
<?xml version="1.0"?>

<note
xmlns="http://www.w3schools.com";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:schemaLocation="http://localhost/test.xsd";>

<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

Here is the XSD:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
targetNamespace="http://www.w3schools.com";
xmlns="http://www.w3schools.com";
elementFormDefault="qualified">

<xs:element name="note">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="to" type="xs:string"/>
        <xs:element name="from" type="xs:string"/>
        <xs:element name="heading" type="xs:string"/>
        <xs:element name="body" type="xs:string"/>
      </xs:sequence>
    </xs:complexType>
</xs:element>

</xs:schema>

If I do the following:
pCtxt =
xmlSchemaNewParserCtxt("http://localhost/test.xsd";);
schema = xmlSchemaParse(pCtxt);
ctxt = xmlSchemaNewValidCtxt(scheam);
ret = xmlSchemaValidateDoc(ctxt, doc);
, then it works.

Is there something wrong with my XML or XSD?  Or is
the feature(looking up XSD via xsi) turned off?

Right, with xmllint the XSI information is not processed
automatically; you need to specify explicitely both, the
schema and the instance. Actually this is a long-standing
enhancement request, and I currently could also use such a
mechanism in order to plug in Libxml2's XML Schema facility
into my favourite XML editor.

Daniel, would it be OK to add such an option to xmllint?

Relevant bugzilla-entries:
http://bugzilla.gnome.org/show_bug.cgi?id=157205
http://bugzilla.gnome.org/show_bug.cgi?id=157973

In addition to that, is there a way to validate a XML
against the corresponding schema(specified in the XML)
automatcially regardless the type of the schema(e.g.
DTD, XSD, RelaxNG or whatever)?

I don't think so. But you can try to write one.

Regards,

Kasimier



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]