OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Why Are Schemas Hard? (WAS RE: "Uh, what do I need this for" (wasRE: XML.COM: How I Learne d t o Love daBomb))

> From: Bullard, Claude L (Len) [mailto:clbullar@ingr.com]


> 1.  What about Schemas is hard?
> 2.  Are some of the issues about things Schemas cannot 
>     represent (eg, the co-occurrence constraints)?
> I'm missing something here.  With a product like 
> XML Spy for sanity checking, I don't seem to find 
> the Schemas hard to develop.  That doesn't say 
> that implementing a system around a schema isn't 
> hard, but I am curious what others are struggling with.
> Yes, the spec is tough (they all are), but the primer isn't, there 
> are dozens of web articles on learning schemas, and 
> a week or so with a beta of an IDE seems to cover 
> the sanity checks.

I strongly suspect that most of the criticisms of XSD's complexity are
coming from those who are trying to write tools that leverage schemas, such
as those trying to leverage schemas for data-binding.  

I also think that issues about things Schemas cannot represent are probably
a frustration to those trying to use it as a validation language. I know
that we have been adapting some of our integration interfaces to use XML
structures that can be adequately expressed with XML Schema. I think you
have to question the value of a validation language when you find that you
are redesigning your XML structures to accomodate the weaknesses of the
schema language. In our case, this means changing our structures such that
an element's content model is not identified by an attribute value. RELAX NG
can accomodate this, but XSD cannot. The lack of support for co-occurence
constraints is a frustration, as well. We are investigating incorporating
support for Schematron-like assertions into our integration mapping tools.
Up to now, developers have simply written code to handle these cases.