- From: Tait E Larson <telarson@us.ibm.com>
- Date: Fri, 4 Jun 2004 12:42:19 -0700
- To: "Michael Kay" <mhk@mhk.me.uk>
- Cc: xmlschema-dev@w3.org
Michael,
I'm not 100% sure your example works in this case. In the case described
in the link below the base type is complex (i.e. contains other elements).
In your example I believe "xsl:generic-element-type" is simple.
I tried modifiying your example slightly. Here's a new example.
<xs:complexType name="SUB">
<xs:simpleContent>
<xs:restriction base="BASE">
<xs:simpleType>
<restriction base="xs:string"/>
</xs:simpleType>
<xs:attribute name="attrB" type="xs:string"
fixed="foo" />
</xs:restriction>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="BASE" mixed="true">
<xs:sequence>
<xs:element name="elemA" type="xs:integer" />
</xs:sequence>
<xs:attribute name="attrB" type="xs:string" />
</xs:complexType>
I get the following error when I try to validate this schema or the schema
you provided:
src-ct.2: Complex Type Definition Representation Error for type 'SUB'.
When simpleContent is used, the base type must be a complexType whose
content type is simple, or, only if extension is specified, a simple
type.
I'm using WebSphere Studio Application Developer v5.1.1 (based on eclipse)
for validation.
Thanks for your help.
Tait
"Michael Kay"
<mhk@mhk.me.uk>
To
06/04/2004 09:58 Tait E Larson/Burlingame/IBM@IBMUS,
AM <xmlschema-dev@w3.org>
cc
Subject
RE: Problem with types derived from
mixed complex types
This is how it's done in the schema for XSLT 2.0:
<xs:complexType name="versioned-element-type" mixed="true">
<xs:complexContent>
<xs:extension base="xsl:generic-element-type">
<xs:attribute name="version" type="xs:decimal" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="text-element-base-type">
<xs:simpleContent>
<xs:restriction base="xsl:versioned-element-type">
<xs:simpleType>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:simpleContent>
</xs:complexType>
<xs:element name="text" substitutionGroup="xsl:instruction">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xsl:text-element-base-type">
<xs:attribute name="disable-output-escaping" type="xsl:yes-or-no"
default="no"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
This is doing what the post you refer to says isn't allowed: deriving
simpleContent by restriction from complexContent. It seems to work!
Michael Kay
>
>
> In regards to restricting a complex type so that it only
> contains text, has
> this problem been resolved? The original post can be found here:
>
> http://lists.w3.org/Archives/Public/xmlschema-dev/2003Jan/0028.html
>
> I looked through the errata at:
>
> http://www.w3.org/2001/05/xmlschema-rec-comments.html.
>
> I could not find any discussion of the problem.
>
> Thanks,
>
> Tait
>
>
>
Received on Friday, 4 June 2004 15:43:01 UTC