Connecting Tech Pros Worldwide Help | Site Map

Strange XML nesting and schema validation

Arthur
Guest
 
Posts: n/a
#1: Jul 20 '05
I've come across some strange xml, that I need to deal with, it looks
like this:-

<root>
<foo attr="1">Some random strange text.
<bar attr="2">blar</bar>
<bar attr="3">blar blar</bar>
<bar attr="4">blar blar blar</bar>
</foo>
</root>

Its the 'Some random strange text' in the between the foo tags along
with all the bar tags.
First of all, if the above actually legal well formed XML?

And if so, what would some schema look like to validate it?

I've tried something similar to this:-

....
<xs:element name="foo">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="attr" type="xs:int" use="required"/>
</xs:extension>
</xs:simpleContent>
<xs:choice>
<xs:element name="bar" minOccurs="0">
<xs:complexType>
<xs:attribute name="attr" type="xs:int" use="required"/>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
....

Buts this doesn't work. :(

Anyone got any ideas?

Arthur.
Priscilla Walmsley
Guest
 
Posts: n/a
#2: Jul 20 '05

re: Strange XML nesting and schema validation


Hi Arthur,

It's allowed - it's known as mixed content. I wouldn't recommend it for
anything other than free-form text (like books, HTML, etc.) but if you
have no control over it...

Here is a type that will validate it:

<xs:element name="foo">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="bar" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="attr" type="xs:int" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="attr" type="xs:int" use="required"/>
</xs:complexType>
</xs:element>

Hope that helps,
Priscilla

----------------------------------
Priscilla Walmsley
Author, Definitive XML Schema
http://www.datypic.com
----------------------------------

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!
Richard Tobin
Guest
 
Posts: n/a
#3: Jul 20 '05

re: Strange XML nesting and schema validation


In article <lhpMd.228$5b4.43@newsfe5-win.ntli.net>,
Arthur <arthur@fubaby.com> wrote:
[color=blue]
>Its the 'Some random strange text' in the between the foo tags along
>with all the bar tags.
>First of all, if the above actually legal well formed XML?[/color]

Consider

<p>This is <b>bold</b><p>

This "mixed context" is perfectly normal when XML is used for marking
up text - which was the original purpose of SGML and XML - but is not
usually a good idea when it's used for representing data structures.
[color=blue]
>And if so, what would some schema look like to validate it?[/color]

See http://www.w3.org/TR/xmlschema-0/#mixedContent

-- Richard
Closed Thread