[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
Re: [xml-dev] Rick Jelliffe quotable quote on the purpose of schemas
- From: Philippe Poulard <Philippe.Poulard@sophia.inria.fr>
- To: Michael Kay <mike@saxonica.com>
- Date: Wed, 13 Dec 2006 17:18:37 +0100
Michael Kay wrote:
>>Except that you will need 3000 tags to express all that
>>people expect and will expect.
>
>
> I'm not sure what you're getting at here. Why should a constraint expressed
> in a declarative language be harder to express than the same constraint in a
> procedural language? Why are multiple tags needed?
Because the expressiveness of W3C XML Schema is (explicitely or
implicitely) well-defined in the spec : some things can be expressed
others can't, for example co-occurence constraints ; I remember that the
guy who talked about co-occurence constraints last week in Boston
introduced a new element (or an attribute, I don't really remember) for
that purpose : so, new feature, new tag.
>
> Can you give me an example of a constraint which is difficult, or verbose,
> to express in a declarative language such as XQuery?
Here is one that you can't express in W3C XML Schema :
-the number of cells must be the same in all columns of the table
http://reflex.gforge.inria.fr/tutorial/active-schema/datas.xml
(this was expressed by someone who asked for a W3C XML Schema, and that
gurus said it was impossible ; if it is, please just let me know)
If this discussion were reduced to schemata, a language such as XQuery
could be used to express additional constraints that you can't express
with your favorite schema language ; this is the same as using
Schematron, or by using XSLT for further validation. However, none of
them act at the component level, that is to say at the content model
level : an editor would propose you to insert an element which would be
rejected by XQuery/Schematron/XSLT.
What is missing in operating and declarative tag libs in general
(including but not limited to schemata) is an intrusive mean to act at
the component level. XQuery is irrelevant in this case. But it could
help : Active Tags is based on XPath, and could rely on XQuery (some
arrangements would be required : in Active Tags, some tags are litteral
others are "active").
>
> Michael Kay
> http://www.saxonica.com/
>
--
Cordialement,
///
(. .)
--------ooO--(_)--Ooo--------
| Philippe Poulard |
-----------------------------
http://reflex.gforge.inria.fr/
Have the RefleX !
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]