- From: Manoj Madhavan <manoj_madhavan@freddiemac.com>
- Date: Wed, 10 Jan 2007 16:56:28 -0500
- To: "Michael Kay" <mike@saxonica.com>
- Cc: xmlschema-dev@w3.org
- Message-ID: <OFB5787B15.C301782B-ON8525725F.0076F29B-8525725F.0078879F@freddiemac.com>
Thanks for your response Kay . 1. I am using xerces 2.9 and I can see that this version infact doesnt tell me the list of all missing elements instead as I mentioned before, it gives me only the first occurance. Agreed that the schema would be validated eventually if I trigger validation again and again, but I would like to see all errors at once so that fixing the instance document is less time consuming. What I see is that implementation doesnt do that by default. So is there a way I can specify additional contraints in my schema(this could be something like specifying the minimum valid elements to be present for a instance document to be valid) to force the schema validations to fire for every element? For example. With the below schema and xml, I would like to see an error saying "Element1 is missing". Currently when I run the test class I get only 1 error which is " Message=cvc-complex-type.2.4.a: Invalid content was found starting with element 'Element3'. One of '{Element1}' is expected." Schema: <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:test="http://www.my.com/test" targetNamespace="http://www.my.com/test" elementFormDefault="unqualified"> <xs:complexType name="DataType"> <xs:sequence> <xs:element name="Element1" type="xs:string"/> <xs:element name="Element2" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:complexType name="RootType"> <xs:sequence> <xs:element name="Data" type="test:DataType" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:element name="Root" type="test:RootType"/> </xs:schema> xml: <?xml version="1.0"?> <test:Root xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xmlns:test="http://www.my.com/test" xs:schemaLocation="http://www.my.com/test test.xsd"> <Data> <Element3>value2</Element3> </Data> </test:Root> 2. Regarding the second point I mentioned, it was a mistake at my end. I could see that an error saying <junk> is not valid element. Thanks Manoj "Michael Kay" <mike@saxonica.com> 01/10/2007 03:38 PM To "'MM'" <manoj_madhavan@freddiemac.com>, <xmlschema-dev@w3.org> cc Subject RE: XML Schema validation doesnt throw some basic errors? > 1) If a complex type has 10 elements which are defined as > mandatory in my schema. In my xml instance if I put only the > 10th element, on validating this against the schema, I get > only 1 error saying that 'found {10th element} while > expecting 9th element. > It doent say that the other 8 elements were missing. I've > enabled full-schema-checking. I want to collect all errors at > one go and dont want to get one error at a time. Is there a > way to achieve this? I would think it unlikely that any implementation will give you more that one error message for a sequence of sibling elements that doesn't match the content model of the parent element. But error reporting depends entirely on the implementation so you would be better off asking on a product-specific list. > 2) If i put a junk element which is not at all defined in the > schema just before closing my <root> tag, the schem > validation doesnt catch this. For > eg: in the below xml > <root> > <element_defined_in_schema_1>..</element_defined_in_schema_1> > .... > .... > <element_not_defined_in_schema>junk</element_not_defined_in_schema> > </root> > > schema validation doesnt throw an error saying that > "element_not_defined_in_schema" is not a valid one. > My instinct is to say: prove it. Given that you haven't shown us the evidence (full schema and instance document), my guess is that it's more likely you have made a mistake than that Xerces has got this wrong. Michael Kay http://www.saxonica.com/ Thanks Manoj 703-388-7496 | 2N / U12A "Michael Kay" <mike@saxonica.com> 01/10/2007 03:38 PM To "'MM'" <manoj_madhavan@freddiemac.com>, <xmlschema-dev@w3.org> cc Subject RE: XML Schema validation doesnt throw some basic errors? > 1) If a complex type has 10 elements which are defined as > mandatory in my schema. In my xml instance if I put only the > 10th element, on validating this against the schema, I get > only 1 error saying that 'found {10th element} while > expecting 9th element. > It doent say that the other 8 elements were missing. I've > enabled full-schema-checking. I want to collect all errors at > one go and dont want to get one error at a time. Is there a > way to achieve this? I would think it unlikely that any implementation will give you more that one error message for a sequence of sibling elements that doesn't match the content model of the parent element. But error reporting depends entirely on the implementation so you would be better off asking on a product-specific list. > 2) If i put a junk element which is not at all defined in the > schema just before closing my <root> tag, the schem > validation doesnt catch this. For > eg: in the below xml > <root> > <element_defined_in_schema_1>..</element_defined_in_schema_1> > .... > .... > <element_not_defined_in_schema>junk</element_not_defined_in_schema> > </root> > > schema validation doesnt throw an error saying that > "element_not_defined_in_schema" is not a valid one. > My instinct is to say: prove it. Given that you haven't shown us the evidence (full schema and instance document), my guess is that it's more likely you have made a mistake than that Xerces has got this wrong. Michael Kay http://www.saxonica.com/
Received on Wednesday, 10 January 2007 22:00:47 UTC