[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
Re: [xml-dev] Use-case for a complex type that has no valid content?
- From: "C. M. Sperberg-McQueen" <cmsmcq@blackmesatech.com>
- To: "Costello, Roger L." <costello@mitre.org>
- Date: Wed, 3 Jun 2015 07:56:15 +0200
On Jun 2, 2015, at 7:44 PM, "Costello, Roger L." <costello@mitre.org> wrote:
> Hi Folks,
>
> Thanks for the outstanding responses.
>
> I have learned that an empty choice:
>
> <xs:complexType name="ValidationKiller">
> <xs:choice/>
> </xs:complexType>
>
> has no valid content, i.e., the set of valid content is the empty set, {}.
>
> When would one use such a complex type? Can you think of a use-case for it?
A concrete example (albeit an imaginary one):
A publicly defined vocabulary may define elements which a local
customization of the vocabulary may wish not to use. Depending on
how the public vocabulary is structured and defined, it may or may
not be possible to make the elements in question disappear entirely
from the customized schema. But if we can redefine the complex
type to be associated with the element, we can ensure, using the
type you define here, that any document containing the elements
we wish to avoid is invalid according to our schema.
More generally: it's handy to be able to write <sequence/> and
<choice/> in content models just as it's handy, in discussions of
regular expressions, to be able to write '' (the empty string) and {}
(the empty set). These are useful, in such discussions, for just the
reason Michael Kay has already given: closure. They allow us
to ensure that the results of certain operations upon languages
defined by regular expressions (e.g. intersection, union, set
difference) can be expressed by regular expressions.
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]