[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
Re: [xml-dev] Build Rich Complexity from a Small Set of Well-DefinedMarkup Combinators
- From: Mukul Gandhi <gandhi.mukul@gmail.com>
- To: John Cowan <cowan@mercury.ccil.org>
- Date: Thu, 25 Aug 2011 19:32:53 +0530
I felt tempted to write on to this thread.
I have full regards for any mechanism that can validate XML instances.
Therefore XSD, RELAX NG and Schematron all look good to me.
Having said this, I have few specific comments to points mentioned
below (please see inline).
On Wed, Aug 24, 2011 at 9:12 PM, John Cowan <cowan@mercury.ccil.org> wrote:
> What makes XSD complicated is the irregularity of the rules. For example,
> a choice between child elements is representable, but a choice between
> attributes is not.
I believe, this is no longer true with XSD 1.1. The choice between 2
or more attributes can be represented in an XSD 1.1 schema. Here's a
small example, that uses XSD 1.1 assertions,
<xs:attribute name="att1" type="xs:string"/>
<xs:attribute name="att2" type="xs:string"/>
<xs:assert test="count(@att1 | @att2) = 1"/>
> What is more, there are many special rules about
> what can and cannot be done, the Unique Particle Attribution rule being
> the most notorious.
The concept of XSD particles is central to the XSD language (and this
hasn't changed between XSD 1.0 and 1.1). XSD particles map to element
declarations, element wild cards and model groups. During validation
with XSD schemas, an instance XML element is attributed (i.e with
which XSD particle an instance structure should be validated with) to
an XSD particle. The schema author may write an XSD schema, that have
ambiguous validation paths (and this is central to the UPA constraint,
and the XSD language defining such situations seems to present a nice
design).
> By comparison, RELAX NG has 9 basic patterns (element, attribute,
> reference, parent reference, empty, text, datatype, typed value,
> notAllowed) and 8 combinator patterns (sequence, interleave, choice,
> optional, zeroOrMore, oneOrMore, list, mixed), but feels much simpler
> than XSD because of the relatively few restrictions in combining them.
I look forward to make a detailed comparison between XSD, RELAX NG and
Schematron :)
--
Regards,
Mukul Gandhi
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]