- From: David Morris <dmmorris@gmail.com>
- Date: Wed, 8 Dec 2004 10:24:48 -0700
- To: xmlschema-dev@w3.org
This does seem to work fine going directly to Xerces without JDOM. I am not sure why since I set the parser to Xerces -- I will have to do some research. Do you know how I can change the default from lax validation of non-native attributes to active? In addition, it takes a lot longer to parse an XML Schema document based on XML Schema. I plan to look at Schema compilers. On the surface it looks like jaxp 1.3 may offer some help but would tie me to a 1.5 JRE. It looks like RelaxNG has something I could use but I don't know whether RelaxNG supports annotations/non-native attributes. Does anyone have any recommendations? Thanks, David Morris On Tue, 7 Dec 2004 11:56:09 -0500, Priscilla Walmsley <priscilla@walmsley.com> wrote: > Hi David, > > I have been able to get this to work using Xerces, by adding the schema for > schemas, as you were trying to do. For example: > > <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 > http://www.w3.org/2001/XMLSchema > http://www.w3.org/2001/XMLSchema.xsd"> > <xsd:element name="test" type="xsd:integer" > doc:description="This element represents a product."/> > </xsd:schema> > > Perhaps the problem was that when you set the external schema location > property, you only used the schema location, when it should be target > namespace, followed by whitespace, followed by the schema location. > > I will update example in the book to include the reference to the schema for > schemas, and add it to the errata. Also note that some processors have > problems validating schemas against the schema for schemas, because there > are a few glitches in it. At least there were at one time - I haven't looked > at it very recently. > > You can also use non-native attributes in your schemas without validating > them, though, because by default they are laxly validated. > > Hope that helps! > Priscilla > > ----------------------------------------------------- > Priscilla Walmsley priscilla@walmsley.com > Author, Definitive XML Schema (Prentice Hall PTR) > ----------------------------------------------------- > > > > > -----Original Message----- > > From: xmlschema-dev-request@w3.org > > [mailto:xmlschema-dev-request@w3.org] On Behalf Of David Morris > > Sent: Tuesday, December 07, 2004 1:32 AM > > To: xmlschema-dev@w3.org > > Subject: Using non-native attributes > > > > > > 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 Wednesday, 8 December 2004 17:24:49 UTC