Skip to Content.
Sympa Menu

xom-interest - Re: [XOM-interest] Validate questions

xom-interest AT lists.ibiblio.org

Subject: XOM API for Processing XML with Java

List archive

Chronological Thread  
  • From: Steve Loughran <steve.loughran AT gmail.com>
  • To: XOM-interest AT lists.ibiblio.org
  • Cc:
  • Subject: Re: [XOM-interest] Validate questions
  • Date: Thu, 27 Jan 2005 11:23:01 +0000

On Thu, 27 Jan 2005 10:51:31 +0100, Arjan Huijzer <huijzer AT gmail.com> wrote:
> Hi all,
>
> I have been adding a validity check to my XML documents and have a
> couple of questions:
>
> 1. Does XOM support validation against an XML schema? So far, I have
> only been able to validate againt a DTD

Turn it on in the parser. This is my option set for validating docs
incoming from somewhat trusted sources where I dont want to enable a
couple of security risks (entity expansion, doctype redeclaration)

xerces.setFeature(
"http://apache.org/xml/features/validation/schema";,
validate);
xerces.setFeature(

"http://apache.org/xml/features/validation/schema-full-checking";,
validate);
xerces.setFeature(
"http://apache.org/xml/features/standard-uri-conformant";,
true);
xerces.setFeature(
"http://apache.org/xml/features/disallow-doctype-decl";,
true);
xerces.setFeature(,
"http://xml.org/sax/features/external-general-entities";,
false);

I also set up my own catalog, for DTD resolution, and get schema res
by telling xerces the local location of things like this:-

parser.setProperty(
"http://apache.org/xml/properties/schema/external-schemaLocation";,
"http: //domain.com/mynamespace mySchema.xsd");

> 2. Do I have to include a doctype declaration to my XML document or
> can I also declare in my java code against which DTD the document
> should be validated.

-dont know


>
> Furthermore, I noticed some odd behaviour. My code to parse an XML
> document used to be:
>
> Document doc = parser.build("c:/xomtest/books.xml");
>
> This worked fine until I switched to Xerces, which bow trows an
> IOException. I had to modify my code to read:
>
> Document doc = parser.build("file:///c:/xomtest/books.xml");

well, that is a proper URI at that point. Maybe xerces is fussy.

If you use Builder.build(File) then everything works.

I would point you to the LGPL source where I do all this, which is in
smartfrog CVS on sourceforge (
http://sourceforge.net/projects/smartfrog ), with the caveat that I
reserve the right to be incompetent (this was my first use of Xom)

Look at the files in
http://cvs.sourceforge.net/viewcvs.py/smartfrog/core/components/cddlm/src/org/smartfrog/services/cddlm/cdl/

There is something there that may be of broader interest: something to
extract a XOM document from bits of an incoming Axis SOAP message. Its
an inefficient process, which shows how badly designed JAXRPC is for
anyone who wants to work with the XML itself, but it does at least
give you XML you can use.

-steve




Archive powered by MHonArc 2.6.24.

Top of Page