- From: Eddie Robertsson <eddie@allette.com.au>
- Date: Thu, 30 Aug 2001 10:13:54 +1000
- To: "Lemmin, Harald" <Harald.Lemmin@softwareag.com>
- CC: xmlschema-dev@w3.org
Hi Harald,
> I automatically generate schemata and can use only simple types, but no
> named types.
> I want to model:
> (a) an element (simple type) with an attribute.
<xs:element name="a">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="a" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
> (b) an element (simple type) with a facette.
<xs:element name="b">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="10"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
> (c) an element (simple type) with an attribute and a facette.
>
> (c) can be modelled only with complexType/simpleContent/restriction:
> <element name="e" type="xs:string">
> <complexType>
> <simpleContent>
> <restriction>
> <length value="10"/>
> <attribute name="a" type="xs:string">
> </attribute>
> </restriction>
> </simpleContent>
> </complexType>
> </element>
I don't think you can do c) without using named type but I'm not 100% sure. The
example you give above is not valid because 1) you can't use both the type
attribute and the child element <complexType>, 2) If you want to add an
attribute to a simpleContent model you have to use <extension> and not
restriction.
> My questions are:
> (I) Which solution to use in case (a) and (b)? Can I always use
> complexType/simpleContent/restriction, like (c)??
See solution above.
> (II) Is it ok to "restrict" an element (simple type) by an attribute, like
> done in (c) [shouldn't it be an extension]? If not, how to model (c) without
> named types?
No, you have to use extension and I can't see how you can model (c) without
named types.
Cheers,
/Eddie
Received on Wednesday, 29 August 2001 20:15:05 UTC