[
Lists Home |
Date Index |
Thread Index
]
Try the following:
<?xml version = "1.0" encoding = "UTF-8"?>
<!--Generated by Turbo XML 2.4.0.100. Conforms to w3c
http://www.w3.org/2001/XMLSchema-->
<xsd:schema xmlns:xsd = "http://www.w3.org/2001/XMLSchema"
elementFormDefault = "qualified">
<xsd:element name = "box">
<xsd:complexType>
<xsd:sequence>
<xsd:element name = "size">
<xsd:complexType>
<xsd:sequence>
<xsd:element name =
"width">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base = "xsd:integer">
<xsd:attribute name = "units" type = "xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name =
"height">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base = "xsd:integer">
<xsd:attribute name = "units" type = "xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
--
<?xml version = "1.0" encoding = "UTF-8"?>
<box xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation = "test.xsd">
<size>
<width units = "cm">50</width>
<height units = "m">1</height>
</size>
</box>
Phil.
-----Original Message-----
From: Richard Rowell [mailto:richard@bowmansystems.com]
Sent: 15 May 2003 16:47
To: xml-dev@lists.xml.org
Subject: [xml-dev] XML-SCHEMA Q: Adding an xsd:attribute to an
xsd:element
I'm sure the answer is painfully obvious, but I cant figure out how to
add an attribute to an element. I want a structure like this:
<box>
<size>
<width units='cm'>50</width>
<height units='m'>1</width>
</size>
</box>
AFAICT I can only attach attributes to complex types in XMLSchema, but
width and height are not complex types (are they?). I know how to
attach the "units" attribute to the size element, but I don't want it
there. This is what I have tried:
<xsd:element name="size">
<xsd:complexType>
<xsd:all>
<xsd:element name="width" type="xsd:integer" minOccurs='1'
maxOccurs='1'>
<xsd:attribute name='units' type="xsd:string"/>
</xsd:element>
<xsd:element name="height" type="xsd:integer" minOccurs='1'
maxOccurs='1'/>
</xsd:all>
</xsd:complexType>
</xsd:element>
Xerces rejects this though:
** Schema error: src-element.0: the content of an element information
item must match (annotation?, (simpleType | complexType)?, (unique | key
| keyref)*). **
LINE: 1
PUBLIC_ID: null
SYSTEM_ID:
--
Richard Rowell <richard@bowmansystems.com>
|