- From: Jeff Rafter <jeffrafter@definedweb.com>
- Date: Mon, 19 Mar 2001 00:11:25 -0800
- To: "Simon Cox" <Simon.Cox@dem.csiro.au>
- Cc: <xmlschema-dev@w3.org>
Simon,
> Is it possible to constrain the character content of a
> mixed complex type to be one of the built-in simple types?
If you had asked three days ago I would point you to
http://lists.w3.org/Archives/Public/xmlschema-dev/2001Jan/0127.html which I
guess is still relevant with the proposed recommendation released on the
16th of this month. Nevertheless I looked through the new spec:
My first thought no, though I must admit I am little confused-- I found:
"A mixed {content type} validates elements whose element [children] (i.e.
specifically ignoring
other [children] such as character information items) conform to the
supplied content model." [1]
"Schema Component Constraint: Derivation Valid (Extension)...
1.4.2.2.2.1 Both {content type}s must be mixed or both must be
element-only." [2]
I picked out these references which seem to agree with my initial thought.
However section 5 of
"Schema Component Constraint: Derivation Valid (Restriction, Complex)" [2]
tripped me up a little. Based on this section I would guess that you could
have a complexType which if "emptiable" would work if you could apply both
the restriction derivation from the complexType and the simpleType-- which I
can't find explicit wording for but I don't think is allowed. It seems that
you can reduce it to simpleContent:
<xs:complexType name="fooType" mixed="true">
<xs:element name="baz" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
</xs:complexType>
<xs:complexType name="barType">
<xs:simpleContent>
<xs:restriction base="fooType"/>
</xs:simpleContent>
</xs:complexType>
because it is emptiable-- but I am not sure how you would (or if you could)
apply a simpleType thereafter. So I am sticking with my no...
Good Luck,
Jeff Rafter
[1] http://www.w3.org/TR/xmlschema-1/#Complex_Type_Definition_details
[2] http://www.w3.org/TR/xmlschema-1/#coss-ct
Received on Monday, 19 March 2001 03:12:04 UTC