- 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