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

Re: XML Schema complex type restriction

  • From: Michael Kay <mike@saxonica.com>
  • To: Hans-Juergen Rennau <hrennau@yahoo.de>
  • Date: Mon, 25 Sep 2017 15:20:05 +0100

Re:  XML Schema complex type restriction
I think there are two main problems with complex type restriction as defined in XSD.

Firstly, you have to describe the restricted content model rather than describing the differences (which means the parts that are retained are described in more than one place.)

Secondly, what I call "deep restriction" gets incredibly convoluted: for example, if you want to restrict all monetary amounts anywhere within an abc:transaction to be in dollars, then you have to define restrictions of all the intermediate types, most of which will be identical to their base type except that some of the child elements are changed to use a restricted type.

Both these problems can be addressed by defining the restrictions using assertions. I think this is how I would normally do it in XSD 1.1. But it's not ideal: if some type has an optional element defined with minOccurs=0 maxOccurs=1, and we want to restrict this in a subtype to be absent, then the ideal syntax would in some way say "the type is the same except that maxOccurs=0" -- which is I think what Hans-Juergen is proposing. I fear though that the "tiny vocabulary" might grow rather larger than is comfortable once you start examining the use cases in detail.

You probably need to distinguish cases where the schema is designed to enable restriction, and cases where it is customized by a third party. In the first case, I think my preferred design would be to define generic parameterized types, using constructs like maxOccurs="$transaction-limit", with values for the parameters being supplied in a concrete realization of the type.

Michael Kay

On 25 Sep 2017, at 13:47, Hans-Juergen Rennau <hrennau@yahoo.de> wrote:

"The trouble with restriction is not knowing exactly what the differences are or why."

This is an interesting point. (And I've always avoided restriction of complex types, instinctively.)

Of course it would, in principle, be very easy to specify a restriction step explicitly, using a tiny vocabulary for specifying the removal of optional elements, other cardinality changes and whatever else is needed. Such a "restriction descriptor" might be the input (together with the original schema) for generating the restricted schema, as well as a new from-scratch schema expressing the restrictions. I wonder if there are any proven approaches to this which might be considered good practise? (And how does NIEM treat this question, where restriction of extreme generality should be extremely important?)

With kind regards,

Rick Jelliffe <rjelliffe@a...> schrieb am 10:01 Montag, 25.September 2017:

You are forced to use a started kitchen sink schema because is standard and therefore will make life easier.

However, most of the elements and attributes are things you dont need. And you know the full schema will blow out implementatuon and confuse testing and anyway YAGNI. 

So you will make profile (Subset) of it using restriction and distribute that. 

But then your schema documents may be bloated. It may be simple just have a parallel validation which just check that only wanted element names are used, using any schema language. 

I.e. In allow elements a,b,c,d,e,f,g,... only chill elements a,b,c,d,e,f,g,... can be used. So the big schema states all the rules. The small one excludes unwanted canes, making it really expect. The trouble with restriction is not knowing exactly what the differences are or why.


On 25 Sep 2017 5:27 PM, "Mukul Gandhi" <gandhi.mukul@g...> wrote:
Hello list,
    Can anyone come up with a useful business use case, to use XML Schema complex type restriction?

Mukul Gandhi

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


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.