- From: Jeni Tennison <jeni@jenitennison.com>
- Date: Wed, 12 Jun 2002 22:15:30 +0100
- To: xmlschema-dev@w3.org, "Prakash Surendranadhan (EWU)" <Prakash.Surendranadhan@ewu.ericsson.se>
Hi Prakash,
> [Error] BSS_ResActvnBSS0.xml:4:108: src-ct.2: Complex Type
> Definition Representation Error for type
> '#AnonType_hopperhopperstop'. 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.
>
>From what I understand this is syntactically correct, so anybody has
>any ideas as to what is going wrong.
The validator is complaining that you're deriving the type of the
hopper element by *restriction* from xs:string. xs:string is a simple
type -- if an element is of that type, it can't have any attributes,
and only text content. You're defining a complex type derived from
xs:string, but you're trying to add attributes at the same time.
When you derive by restriction, you must *restrict* the base type --
the new type must accept less things than the base type. If you want
to allow it to accept more things, then you have to derive by
*extension*. Try:
<xs:element name="hopper" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="identity" type="xs:ID" use="required"/>
...
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
(The validator is actually complaining about the fact that you're
using an xs:restriction element within a xs:simpleContent element
within a xs:complexType element, when the base attribute of the
xs:restriction element points to a simple type rather than a complex
type, since that's not allowed according to the XML Schema spec.)
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
Received on Wednesday, 12 June 2002 17:15:33 UTC