W3C home > Mailing lists > Public > xmlschema-dev@w3.org > June 2004

RE: Problem with types derived from mixed complex types

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
Message-ID: <OF37B36475.DA82960A-ON88256EA9.00688A90-88256EA9.006C6BF8@us.ibm.com>


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:restriction base="BASE">
                              <restriction base="xs:string"/>
                        <xs:attribute name="attrB" type="xs:string"
fixed="foo" />

      <xs:complexType name="BASE" mixed="true">
                  <xs:element name="elemA" type="xs:integer" />
            <xs:attribute name="attrB" type="xs:string" />

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

I'm using WebSphere Studio Application Developer v5.1.1 (based on eclipse)
for validation.

Thanks for your help.


             "Michael Kay"                                                 
             06/04/2004 09:58          Tait E Larson/Burlingame/IBM@IBMUS, 
             AM                        <xmlschema-dev@w3.org>              
                                       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:extension base="xsl:generic-element-type">
      <xs:attribute name="version" type="xs:decimal" use="optional"/>

<xs:complexType name="text-element-base-type">
    <xs:restriction base="xsl:versioned-element-type">
        <xs:restriction base="xs:string"/>
      <xs:anyAttribute namespace="##other" processContents="lax"/>

<xs:element name="text" substitutionGroup="xsl:instruction">
      <xs:extension base="xsl:text-element-base-type">
        <xs:attribute name="disable-output-escaping" type="xsl:yes-or-no"

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

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 14:56:05 UTC