Subject:Re: Command line option for your file Validator Author:(Deleted User) Date:04 Sep 2003 11:46 AM
At 04.53 03/09/2003, you wrote:
>From: "Martin Roberts"
>
>I have asked before, but do you have a command line version of the schema
>validator like you do for the xsl engine.
No, we don't have such a command line utility (yet).
If what you need is simply a valid/invalid report for an XML document, you
can try creating a dummy XQuery document (containing just a "Document is
valid" string - quotes included), and running
stylusxql Dummy.xquery xml-to-validate.xml stdout
You will see either the "Document is valid" message, or the first
validation error.
Subject:Re: Command line option for your file Validator Author:(Deleted User) Date:05 Sep 2003 07:10 AM
Does this do schema validation only if full schema location info is in the XML file? I want to validate files against schemas without having to refer to xsi:schemalocation in the file?
Subject:Re: Command line option for your file Validator Author:(Deleted User) Date:05 Sep 2003 10:21 AM
At 07.33 05/09/2003, you wrote:
>From: "Martin Roberts"
>
>Does this do schema validation only if full schema location info is in the
>XML file? I want to validate files against schemas without having to
>refer to xsi:schemalocation in the file?
Validation will be performed only if the source XML document refers to a
schema (either DTD or XSD). If you want to force validation against a
well-known schema, you need to change the dummy XQuery document to be:
import schema "http://www.mycompany.com/myNamespace" at "example.xsd"
if(validate { /element() }) then
"Validation succeeded"
else
"Validation failed"
Subject:Re: Command line option for your file Validator Author:(Deleted User) Date:12 Sep 2003 04:00 PM
Hi Martin,
the file you attached is importing just one schema; also, can you send me
the XML document being validated and the schema named in the XQuery document?
Subject:Re: Command line option for your file Validator Author:(Deleted User) Date:16 Sep 2003 01:00 PM
Hi Martin,
can you send me (privately, if you prefer) also the schemas? I tried
looking at the telcob2b website, but they don't seem to be publicly available.
Subject:Re: Command line option for your file Validator Author:(Deleted User) Date:18 Sep 2003 11:21 AM
Hi Martin,
the error is caused by the fact that one of the schemas is already
including the first one (Order.ServiceRequest.xsd imports Order.xsd), so
Xerces throws an exception when we try to add the second copy to the cache.
A workaround could be not to import the Order.xsd schema, relying on the
fact that it's referenced by Order.ServiceRequest.xsd.
We will work on finding a way to convince Xerces that this is not really an
error.
Subject:Re: Command line option for your file Validator Author:(Deleted User) Date:23 Oct 2003 09:43 AM
Alberto,
Sadly removing the references to imported schemas does not resolve it as two of the lower level schemas import the same schema. This does not seem to be a problem with your client side validation, why should xerces throw it out when doing it within the XQuery?
I removed all bar the Notification and the Wholesale Calls but these both import the same schema. With out these imports you can not validate the schemas individually, so it seems strange that you can not validate the xml instances against these. Is this a known bug in xerces?
Subject:Re: Command line option for your file Validator Author:(Deleted User) Date:23 Oct 2003 10:09 AM
Hi Martin,
At 10.07 23/10/2003 -0400, you wrote:
>From: "Martin Roberts"
>
>Alberto,
>Sadly removing the references to imported schemas does not resolve it as
>two of the lower level schemas import the same schema. This does not seem
>to be a problem with your client side validation, why should xerces throw
>it out when doing it within the XQuery?
>
>I removed all bar the Notification and the Wholesale Calls but these both
>import the same schema. With out these imports you can not validate the
>schemas individually, so it seems strange that you can not validate the
>xml instances against these. Is this a known bug in xerces?
Yes, it is a known bug in Xerces; when the XQuery processor is adding all
the schemas to the single schema cache, an exception is thrown if a schema
happens to be already in the cache. This situation is not considered an
error when validating an XML file against a single schema document.
Subject:Re: Command line option for your file Validator Author:(Deleted User) Date:23 Oct 2003 12:14 PM
Alberto,
I can use your schema validator to validate xml instance documents against the schemas I sent you without the failure. This works if I do an explicit schemaLocation call. I suppose this does not attempt to load the cache?
Is there a proposal to fix this bug in xerces either by yourselves or others?
Subject:Re: Command line option for your file Validator Author:(Deleted User) Date:23 Oct 2003 12:59 PM
At 12.38 23/10/2003 -0400, you wrote:
>From: "Martin Roberts"
>
>Alberto,
> I can use your schema validator to validate xml instance documents
> against the schemas I sent you without the failure. This works if I do
> an explicit schemaLocation call. I suppose this does not attempt to load
> the cache?
Yes; the schema cache is involved in the picture when you use the "import
schema" keyword. You want to use this keyword when you know that the XML
file you are going to validate doesn't have a reference to a schema, and
you want to assign one to the namespace it uses.
>Is there a proposal to fix this bug in xerces either by yourselves or others?
The fix has already been identified; but it's a change in the behavior of
the parser, and it's not still clear if this change would break something
else inside Xerces.
Subject:Re: Command line option for your file Validator Author:(Deleted User) Date:16 Jul 2004 11:45 AM
I have sorted out the previous error as you had explained in the previous emails. unfortunately the validator is not picking up incorrect XML. Can you please confirm that the validate command actually checks against schemas and not just for well formedness?
Subject:Re: Command line option for your file Validator Author:(Deleted User) Date:16 Jul 2004 12:15 PM
At 11.27 16/07/2004 -0400, stylus-studio-tech Listmanager wrote:
>From: "Martin Roberts"
>
>[...]
>I have attached the xquery file.
Hi Martin,
can you send me the XQuery file? It looks like the BBS software didn't
store it properly, as clicking on the link open a "file not found" page.
Subject:Command line option for your file Validator Author:(Deleted User) Date:16 Jul 2004 12:52 PM
Hi Martin,
>I seem to have got it working by using the validate strict
>command.
>
>However, it does not fail the if statement it bombs out
>altogether.
>Is there a way to force it to fail gracefully?
Unfortunately the "validate" command in XQuery is designed to report
an error when validation fails. The good news is that Stylus now ships
with a command line tool that exposes the internal validator.
Its syntax is:
usage: StylusValidator [-q] [-noval] [-schema file]* filename
-q: quiet mode (errors are not printed)
-noval: check only for the document to be well-formed
-schema: force validation of the document against this XML Schema
So you can run
StylusValidator -schema http://.../schema.xsd MySample.xml
to force the validation of the sample XML file against the given schema,
and have a list of the errors.
In a future release the capability of validating against non-bound
schemas will be available also from inside the IDE.