XML Schema: How to put restrictions on element names

R

ruediger

Hi there,

I want to set up an XML Schema for documents of the following
structure:

The <root> node contains
- an optional <message> element with a text attribute, and
- arbitrary further content.

To make the parts unique, the top-level element of the further content
must not have the name "message". Therefore, this further content is
not completely arbitrary, but there is a restriction on the element
name.

Examples:

<root>
<message text="Hi there"/>
<purchaseOrder number="4711">
<item number="10" matnr="4033871" qty="10"/>
</purchseOrder>
</root>

<root>
<message text="Only message"/>
</root>

<root>
<!-- only further content -->
<part number="10">
<option key="10" text="First option"/>
<option key="20" text="Second option"/>
</part>
</root>

In an imagined, non-existing XML Schema syntax, the further
content should be defined somehow like

<xs:restriction refType="xs:any">
<xs:condition test="local-name()!='message'"/>
</xs:restriction>

Since I don't know how to do such a thing in the existing
XML-Schema language, I tried to use <xs:any> without restrictions.
But this didn't pass the XSD Validator, due to the non-uniqueness
of a possible message element:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element name="message" minOccurs="0" maxOccurs="1">
<xs:complexType>
<!-- leaving out attribute definitions for simplicity... -->
</xs:complexType>
</xs:element>
<xs:any minOccurs="0" processContents="skip"/>
<!-- ^^^^^ For this part, we need a restriction on the element
name!!! -->
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

Any suggestion how to define arbitrary elements
with restricted element name in XML Schema???

Thanks
Ruediger
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,577
Members
45,054
Latest member
LucyCarper

Latest Threads

Top