[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Can XML Schemas do this?

xml count different elements constraint
From: "Brian Burridge" <maillist@b...>

> I have an xml document, where we want elements to be able to appear in
> any order. Some are required, others aren't. And in many cases if you
> have tag A then you don't need tag B, and vice versa.
> Problem is, I need to use the ALL tag and have choices and groups within
> it, but you can't.

If you have choices and groups, then how can you need the ALL tag?
If you really need the strong constraints, you may have to just make an
enormous content model.

Rick Jelliffe?

P.S. If you want to do this kind of thing using Schematron (or some mix
of XML Schemas and Schematron) you can use the following idioms

<rule context="myElement">
    <assert test="count(x) + count(y) + count(z) = count(*)">
        myElement can only contain the elements x,y,z <!-- n.b. in any order-->
    <assert test="x">
        myElement must contain at least one x  <!-- n.b. anywhere -->
    <assert test="count(y)=1">
        myElement must contain a single y <!-- n.b. anywhere -->
    <assert test="count(z) = count(z[previous-sibling::y])">
        a z element can only follow a y 

Grammars allow exquisite modelling of sequence, at the cost that
they generally are weak when sequence is only occasionally
important in a content model. XPath-based constraint languages 
(such as Schematron) are strong for that, but are weaker (or, at least,
more verbose) when elements re-appear in content models with different

However, complex content models are usually either a sign of a missing
element, or that there is some simple constraint required that cannot
be well expressed by a regular expression.  In the latter case, it is
better engineering to express the constraint more directly, using explicit
rules rather than simulate them using a grammar.


Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
First Name
Last Name
Subscribe in XML format
RSS 2.0
Atom 0.3

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.

Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

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