RE: Russian doll schemas stink? (was: Re: XML "Smell
Christian: | Of course a purist global complex type schema can be hard to | stick to, so in organisations where I have put in place | schema design guidelines, I usually put down the following: | - No global elements except candidate root elements | - No inline anonymous type definitions, all elements must | reference a | global type except containers for repeating constructs | because they are | so simple, e.g. businessCenters containing businessCenter* | | p.s. To be fair, most of these schemas were on the large | side (hundreds of types or more). The consequence of the | strict guidelines was good reuse, the ability to create a | glossary, no hidden information, and so on... the design | guidelines were enforced using an XSLT stylesheet that | created a quality report. I see a tendency to maintain data definitions within repositories, and generate Schema's from those. HL7 does this, and so does the Dutch Criminal Justice Chain. In such cases, global types are not necessary for reuse since reuse is done on repository items. Generated Schemas are only validation / documentation tools, so the whole Russian doll vs. re-use discussion evaporates. HL7 still uses global types and a separate vocabulary Schema, but I do not really like it. A 'flat' Schema with one global element (the root) and only anonymous types reflects the message content as well and is more readable. It's even possible to generate multiple Schema variants each of which validates exactly the same class of XML instances - though it would be hard to prove except for simple cases whether they really do. Regards, Marc Marc de Graauw Eerste Looiersdwarsstraat 19 1016 VL Amsterdam The Netherlands +31 (20) 6123281 +31 (6) 53146724 www.marcdegraauw.com
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format