- From: David Morris <dmmorris@gmail.com>
- Date: Mon, 6 Dec 2004 23:31:50 -0700
- To: xmlschema-dev@w3.org
I am trying to use a non-native schema attribute and it doesn't seem
to work how I thought it would. The only reference with substance I
can find on the subject is Priscilla Walmsley's book Definitive XML
Schema. I am trying to annotate a schema with some custom attributes
to validate an idea and have run into some trouble.
When I edit an XML Schema using WebSphere Development Studio's (WDS)
Schema editor, I get an error "Unknown attribute xxx:yyy". After a lot
of trial and error, I downloaded a similar example from the Definitive
XML Schema Web site. That example (chapter 6 5/6) fails with the same
error (and a missing type). At this point, I have to believe that WDS
is unable to work with non-native attributes.
Here is the example XML Document and XML Schema:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:doc="http://example.org/doc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://example.org/doc example0606.xsd">
<xsd:element name="product" type="xsd:string"
doc:description="This element represents a product."/>
</xsd:schema>
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://example.org/doc"
targetNamespace="http://example.org/doc">
<xsd:attribute name="description" type="xsd:string"/>
</xsd:schema>
The next thing I tried was to use a Java program to programatically
validate this Schema with the XML Schema Schema. I receive the
fillowing "Caused by: org.xml.sax.SAXParseException: cvc-elt.1: Cannot
find the declaration of element 'xsd:schema'." I can use this same
program to validate conventional XML documents against an XML Schema
and it works fine. I am using Xerces 1.6.2 and JDOM 1.0. I have tried
using an entity resolver to pick up a local copy of XMLSchema.xsd as
well as from the URL: http://www.w3.org/2001/XMLSchema.xsd.
Here is some of the code:
SAXBuilder builder =
new SAXBuilder("org.apache.xerces.parsers.SAXParser", true);
builder.setEntityResolver(new SchemaLoader());
builder.setFeature(
"http://apache.org/xml/features/validation/schema",
true);
builder.setProperty(
"http://apache.org/xml/properties/schema/external-schemaLocation",
"http://www.w3.org/2001/XMLSchema.xsd");
Document doc = builder.build(xmlFile);
Thanks for your help,
David Morris
Received on Tuesday, 7 December 2004 10:32:03 UTC