- 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