XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Ian ThomasSubject: [OT] XSD - is this valid XML or not?
Author: Ian Thomas
Date: 28 Jan 2008 07:06 PM
Originally Posted: 28 Jan 2008 07:05 PM
This is not a SS question. It's just about XML/XSD code validity.

I have come across some problems in the the GML Standard (OGC - OpenGis Consortium) which is also incorporated in the ISO 19139 standard, when validating with Microsoft .NET code. I have extracted this small section -

<complexType name="GridDomainType">
<complexContent>
<restriction base="gml:DomainSetType">
<sequence minOccurs="0">
<choice>
<choice>
<element ref="gml:Grid"/>
</choice>
423 -----> <choice/>
</choice>
</sequence>
<attributeGroup ref="gml:OwnershipAttributeGroup"/>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</restriction>
</complexContent>
</complexType>

The offending line in the file I have is 423 (mmarked above).
There is an argument put in the SSDN forums (Archives for 2002) by Jeni Tennison, that this is incorrect. See http://xsd.stylusstudio.com/2002Aug/post03018.htm

Can someone indicate what a preferred construct for the offending line might be? The Microsoft .NET parser (with the .NET Framework 3.5) errors "ambiguous element choice in the complexType 'GridDomainType'" at this line.
My brute force solution (in order to pass on to some extra problems in validating the full stack of 70+ XSD files, in .NET code) was just to delete line 423.

Thanks for any help.

Ian Thomas
--------------
Stylus Studio 2008 XML Enterprise Suite R1

Posttop
Ian ThomasSubject: [OT] XSD - is this valid XML or not?
Author: Ian Thomas
Date: 31 Jan 2008 06:51 PM
Originally Posted: 31 Jan 2008 06:50 PM
Jeni Tennison was kind enough to answer my query on this topic, and here is her view. She refers to her earlier posts (2002) on this forum.

---------
I think it's OK. As the post you refer to makes clear, empty <choice>s
are legal, just never satisfiable. Here, the empty <choice> is within
another <choice> which has an alternative (namely a <gml:Grid> element).
And the whole thing is wrapped in an optional sequence. As far as I can
tell, that means that something with GridDomainType would be legal if it was empty (the sequence is optional) or if it contains a single
<gml:Grid> element.

There might be a problem if GridDomainType isn't a legal restriction of
gml:DomainSetType, of course, but I don't know if that's the case (the
restriction rules in XML Schema are notoriously hard to follow, even if
I had the original definition).

> What’s your view, in 2008? And what would you change that fragment to,
> to better reflect the intent?

Of course it would be possible to rewrite it to:

<xs:sequence minOccurs="0">
<xs:element ref="gml:Grid" />
</xs:sequence>

I suspect that the fact it *isn't* written like that is due to the
tricky restriction rules (or possibly it's machine-generated in some way).

Cheers,
Jeni
--
Jeni Tennison
http://www.jenitennison.com
---------

That may be of interest to some others on this forum.

**********
Ian Thomas
--------------
Stylus Studio 2008 XML Enterprise Suite R1 (Build 1050e)

 
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.