You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-users@xerces.apache.org by Adrian Herscu <bm...@fastmail.fm> on 2006/03/19 21:24:26 UTC

xsi:schemaLocation and external-schemaLocation

Hi all,

It seems like the xsi:schemaLocation takes precedence over the
http://apache.org/xml/properties/schema/external-schemaLocation
property. Is it by design? Why?

I am trying to use ANT's <xmlvalidate> task this way:

<xmlvalidate>
  <fileset dir="${mySourceDirectory}" includes="${myXmlFiles}" />

  <attribute
    name="http://xml.org/sax/features/validation"
    value="true" />
  <attribute
    name="http://apache.org/xml/features/validation/schema"
    value="true" />
  <attribute
    name="http://xml.org/sax/features/namespaces"
    value="true" />

  <property
name="http://apache.org/xml/properties/schema/external-schemaLocation"
    value="${mySchema}" />
</xmlvalidate>

My XML files declare a schema location:
<myrootelm xsi:schemaLocation="mynamespace
http://localhost:8080/mynamespace/MySchema.xsd" ...>

The validation fails with the following log:

[xmlvalidate] mypath/MyFile.xml:1:1:
http://www.w3.org/TR/xml-schema-1#SchemaLocation?myschemapath/MySchema.xsd
[xmlvalidate] mypath/MyFile.xml:8:332: schema_reference.4: Failed to
read schema document 'http://localhost:8080/mynamespace/MySchema.xsd',
because 1) could not
find the document; 2) the document could not be read; 3) the root
element of the
 document is not <xsd:schema>.
[xmlvalidate] mypath/MyFile.xml:8:332: cvc-elt.1: Cannot find the
declaration of element 'myrootelm'.

The schema is not available on the server (i.e. at
http://localhost:8080/mynamespace/MySchema.xsd) but I did not want to
validate using that schema either.

Please help,
Adrian.


Re: xsi:schemaLocation and external-schemaLocation

Posted by Michael Glavassevich <mr...@ca.ibm.com>.
Hi Adrian,

Adrian Herscu <bm...@fastmail.fm> wrote on 03/19/2006 03:24:26 PM:

> Hi all,
> 
> It seems like the xsi:schemaLocation takes precedence over the
> http://apache.org/xml/properties/schema/external-schemaLocation
> property. Is it by design?

No.

> Why?

You didn't state which version of Xerces-J you tried this with. Xerces 
2.6.0, 2.6.1 and 2.6.2 had a bug (see 
http://issues.apache.org/jira/browse/XERCESJ-994) which caused the 
external-schemaLocation property to be ignored when the parser is re-used. 


It should work with Xerces 2.7 and up.

> I am trying to use ANT's <xmlvalidate> task this way:
> 
> <xmlvalidate>
>   <fileset dir="${mySourceDirectory}" includes="${myXmlFiles}" />
> 
>   <attribute
>     name="http://xml.org/sax/features/validation"
>     value="true" />
>   <attribute
>     name="http://apache.org/xml/features/validation/schema"
>     value="true" />
>   <attribute
>     name="http://xml.org/sax/features/namespaces"
>     value="true" />
> 
>   <property
> name="http://apache.org/xml/properties/schema/external-schemaLocation"
>     value="${mySchema}" />
> </xmlvalidate>
> 
> My XML files declare a schema location:
> <myrootelm xsi:schemaLocation="mynamespace
> http://localhost:8080/mynamespace/MySchema.xsd" ...>
> 
> The validation fails with the following log:
> 
> [xmlvalidate] mypath/MyFile.xml:1:1:
> 
http://www.w3.org/TR/xml-schema-1#SchemaLocation?myschemapath/MySchema.xsd
> [xmlvalidate] mypath/MyFile.xml:8:332: schema_reference.4: Failed to
> read schema document 'http://localhost:8080/mynamespace/MySchema.xsd',
> because 1) could not
> find the document; 2) the document could not be read; 3) the root
> element of the
>  document is not <xsd:schema>.
> [xmlvalidate] mypath/MyFile.xml:8:332: cvc-elt.1: Cannot find the
> declaration of element 'myrootelm'.
> 
> The schema is not available on the server (i.e. at
> http://localhost:8080/mynamespace/MySchema.xsd) but I did not want to
> validate using that schema either.
> 
> Please help,
> Adrian.
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: j-users-unsubscribe@xerces.apache.org
> For additional commands, e-mail: j-users-help@xerces.apache.org

Michael Glavassevich
XML Parser Development
IBM Toronto Lab
E-mail: mrglavas@ca.ibm.com
E-mail: mrglavas@apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: j-users-unsubscribe@xerces.apache.org
For additional commands, e-mail: j-users-help@xerces.apache.org