- From: Pete Cordell <petexmldev@codalogic.com>
- Date: Wed, 17 Nov 2010 18:25:11 -0000
- To: "Mukul Gandhi" <gandhi.mukul@gmail.com>
- Cc: <xmlschema-dev@w3.org>
Hi Mukul, Thanks for trying it on Xerces. It's a validator I don't have. Motivated by your suggestion I decided to look for an on-line version and found the following: http://validate.openlaboratory.net/ I put in the following files: ----Fail.xsd----- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:complexType name="DoubleBase"> <xs:simpleContent> <xs:extension base="xs:double"> <xs:attribute name="DoubleBaseAttr" type="xs:boolean"/> </xs:extension> </xs:simpleContent> </xs:complexType> <xs:complexType name="DoubleBaseExtension"> <xs:complexContent> <xs:extension base="DoubleBase"> <xs:attribute name="DoubleExtensionAttr" type="xs:boolean"/> </xs:extension> </xs:complexContent> </xs:complexType> <xs:element name="DoubleElement" type="DoubleBaseExtension"/> </xs:schema> ----Fail.xml----- <DoubleElement DoubleExtensionAttr="true" DoubleBaseAttr="false">1.5</DoubleElement> While it reported that the XSD and XML were OK, it displayed the following error message. ====== Validation results Checking first import/include references in schema files: Fail.xsd: OK Fail.xml: OK Running validation process '/usr/bin/DOMPrint' Errors detected: Error at file "Fail.xml", line 2, column 69 Message: No character data is allowed by content model Instance Fail.xml: <?xml version="1.0" encoding="UTF-8"?> <DoubleElement DoubleExtensionAttr="true" DoubleBaseAttr="false">1.5</DoubleElement> ====== Does anybody know what an instance should look like if the schema is OK, but this instance is wrong? BTW: I don't know what version of Xerces the page uses. Thanks, Pete Cordell Codalogic Ltd Interface XML to C++ the easy way using C++ XML data binding to convert XSD schemas to C++ classes. Visit http://codalogic.com/lmx/ or http://www.xml2cpp.com for more info ----- Original Message ----- From: "Mukul Gandhi" <gandhi.mukul@gmail.com> To: "Pete Cordell" <petexmldev@codalogic.com> Cc: <xmlschema-dev@w3.org> Sent: Wednesday, November 17, 2010 5:50 PM Subject: Re: Extension of xs:simpleContent Hi Pete, I believe the schema you've posted is correct (I cross checked with Xerces too). I think for simpleContent instances, schema component complexContent can be used technically as well (since simpleContent is a subset of complexContent). Though I would have designed the schema type "DoubleBaseExtension" specified in your example, to use simpleContent rather than complexContent (as you rightly said too). On Wed, Nov 17, 2010 at 10:45 PM, Pete Cordell <petexmldev@codalogic.com> wrote: > I have a customer who has a schema that extends a simple type double into > a > complex type with simple content, and then as a separate construct extends > that into a complex type with complex content. They do this along the > following lines: > > <xs:complexType name="DoubleBase"> > <xs:simpleContent> > <xs:extension base="xs:double"> > <xs:attribute name="DoubleBaseAttr" type="xs:boolean"/> > </xs:extension> > </xs:simpleContent> > </xs:complexType> > > <xs:complexType name="DoubleBaseExtension"> > <xs:complexContent> > <xs:extension base="DoubleBase"> > <xs:attribute name="DoubleExtensionAttr" type="xs:boolean"/> > </xs:extension> > </xs:complexContent> > </xs:complexType> > > (To avoid confusion, the intent of the latter is to add the > DoubleExtensionAttr attribute rather than mandate that you've got > complexContent.) > > My feeling is this is wrong because DoubleBaseExtension should specify > xs:simpleContent rather than xs:complexContent. > > However, XML Spy and Visual Studio seem to accept the above, and the > example > is actually based on a industry consortium schema that specifies similar > constructs. > > So my questions are: > > 1) Is the above schema correct or not? > > 2) If it is technically incorrect, is it widely occurring (possibly > because > tools fail to pick it up) and therefore worth overlooking this error? > > Thanks, > > Pete Cordell > Codalogic Ltd > Interface XML to C++ the easy way using C++ XML > data binding to convert XSD schemas to C++ classes. > Visit http://codalogic.com/lmx/ or http://www.xml2cpp.com > for more info -- Regards, Mukul Gandhi
Received on Wednesday, 17 November 2010 18:26:01 UTC