- From: <noah_mendelsohn@us.ibm.com>
- Date: Sat, 17 Apr 2004 22:57:36 -0400
- To: "Michael Kay" <mhk@mhk.me.uk>
- Cc: "'Pierre Attar'" <attar@tireme.fr>, "'Bruno Chatel'" <bcha@chadocs.net>, xmlschema-dev@w3.org
Michael Kay writes: > > I wonder if it is possible to define a constrain on a mixed > > content using XML Schemas. > > I don't think this is possible. > > Michael Kay Actually, a number of interesting constraints are possible. The exact spec details are at [1] in the constraint named "Schema Component Constraint: Derivation Valid (Restriction, Complex)". Rather than explain this rigorously, I will try to give you the general spirit of the rules: * The overall philosphy of validating mixed content is that when you see an instance like: 123<X>abc</X>456<Y>def</Y>789 you ignore the character content and validate only the element content: <X>abc</X><Y>def</Y> so if you have declared a sequence of X,Y this might well validate. * Restriction of element content follows from this. Let's imagine that your original model was actually (X,Y?). From this you could derive a new mixed type allowing only the X which would validate: 123<X>abc</X>456789 but not the original 123<X>abc</X>456<Y>def</Y>789 * There is another twist. If your base content model is like this (X?, Y?) then it's what the recommendation calls "emptiable", becaues all of its content is optional. In that specific case you can not only derive a type with no element content, you can in fact derive a type with simple content. Thusl, the restricted type could type the content as xsd:integer, for example, which would validate: 123456789 I'm sure Henry will chime in if I've missed something, but I believe the above is how it works. Noah [1] http://www.w3.org/TR/xmlschema-1/#coss-ct -------------------------------------- Noah Mendelsohn IBM Corporation One Rogers Street Cambridge, MA 02142 1-617-693-4036 --------------------------------------
Received on Saturday, 17 April 2004 23:00:09 UTC