- From: Pete Cordell <petexmldev@tech-know-ware.com>
- Date: Tue, 10 Apr 2007 20:43:19 +0100
- To: <noah_mendelsohn@us.ibm.com>
- Cc: <xmlschema-dev@w3.org>
----- Original Message -----
From: <noah_mendelsohn@us....>
> Pete Cordell writes:
>
>> I think it will be possible to find many cases where such an
>> extension does not make sense. But I also think that it will
>> be possible to find many cases where it does make sense.
>
> Sure, but you can always allow for it. For example, you could do:
>
> <choice>
> <element ref="html"/>
> <any notQname="##defined"/>
> </choice>
Is this intended to be the syntax for a version 1 schema? i.e., I design my
schema thinking that I probably don't want <html> here (otherwise I would
have put it in more formally), but I'm leaving scope for it in the future by
putting it into this choice (which as you say, could be a group)?
That would seem very ugly to me.
> Many other strategies are possible. For example, instead of the ref to
> the HTML element, that could be a reference to a group with a choice of
> several elements. The point is, if it's in your schema, you tend to know
> about it, and can reference it if you want to allow it.
...Unless you make a mistake in V1, or new use-cases arise. In my
experience most schemas are not perfect in their first incarnation.
Otherwise why would you need a V2?
> Furthermore, nothing requires you to use a NIS wildcard. You've
> acknowledged it's useful in some cases. In the others, use something
> else!
I'm not denying that ##defined might be useful to some, although my gut
feeling is that people will regret using it.
Also, schema permits the design of syntaxes of the form:
<HTML>
<TABLE>
<CAPTION>...</CAPTION>
<TBODY>...</TBODY>
<!-- Do you really want the following to match the WC? -->
<HTML>...</HTML>
</TABLE>
It seems inconsistent for the language to permit this design, and yet not
readily allow an extension to this sort of design.
Perhaps a more fine grained control, e.g. allow something like:
<any notQname="##locallyDefined ##globallyDefined ##ancestorDefined"/>
and then schema authors can pick and choose the exact configuration they
want.
BTW - Is this what ##defined is currently set to cover; all potential local
siblings, all global elements, and all ancestors. What about all possible
descendents in an instance?
Thanks,
Pete.
--
=============================================
Pete Cordell
Tech-Know-Ware Ltd
for XML to C++ data binding visit
http://www.tech-know-ware.com/lmx/
http://www.codalogic.com/lmx/
=============================================
Received on Tuesday, 10 April 2007 19:43:52 UTC