- From: Henry S. Thompson <ht@inf.ed.ac.uk>
- Date: Tue, 10 May 2005 09:56:32 +0100
- To: Gregor <iamgregor@gmail.com>
- Cc: www-xml-schema-comments@w3.org
XML Schema Formal Description [1] is a work-in-progress (not much progress lately :-( and should not be considered normative. The inference rules it's talking about are not the constraints on schemas from the REC in any case. Considered as a grammar for a language over preterminal element names, W3C XML Schema part 1 is certainly not directly isomorphic to traditional context-free phrase-structure _grammars_, because a) It allows regular expressions on the 'right-hand side'; b) It allows type definitions to be associated with element names in a context-sensitive way. However, per the Peters and Ritchie result (try google) I suspect that none-the-less it defines only context-free _languages_, because it uses an analogue of the node-admissability interpretation (as opposed to the string-rewriting interpretation) of its rules. Once you take IDs and key/unique/keyref in to account, we probably get out of the context-free languages -- how far is not at all obvious. Not clear we even get to the indexed languages, although I _think_ I can do a{n}b{n}c{n} as follows (warning, serious key hacking follows): <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="root"> <xs:complexType> <xs:sequence> <xs:element ref="a" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="b" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="c" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:key name="a"> <xs:selector xpath="a"/> <xs:field xpath="@a"/> </xs:key> <xs:keyref name="ar" refer="b"> <xs:selector xpath="a"/> <xs:field xpath="@a"/> </xs:keyref> <xs:key name="b"> <xs:selector xpath="b"/> <xs:field xpath="@b"/> </xs:key> <xs:keyref name="br" refer="c"> <xs:selector xpath="b"/> <xs:field xpath="@b"/> </xs:keyref> <xs:key name="c"> <xs:selector xpath="c"/> <xs:field xpath="@c"/> </xs:key> <xs:keyref name="cr" refer="a"> <xs:selector xpath="c"/> <xs:field xpath="@c"/> </xs:keyref> </xs:element> <xs:element name="a"> <xs:complexType> <xs:attribute name="a" type="xs:integer" use="required"/> </xs:complexType> </xs:element> <xs:element name="b"> <xs:complexType> <xs:attribute name="b" type="xs:integer" use="required"/> </xs:complexType> </xs:element> <xs:element name="c"> <xs:complexType> <xs:attribute name="c" type="xs:integer" use="required"/> </xs:complexType> </xs:element> </xs:schema> ht [1] http://www.w3.org/TR/2001/WD-xmlschema-formal-20010320/ -- Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh Half-time member of W3C Team 2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440 Fax: (44) 131 650-4587, e-mail: ht@inf.ed.ac.uk URL: http://www.ltg.ed.ac.uk/~ht/ [mail really from me _always_ has this .sig -- mail without it is forged spam]
Received on Tuesday, 10 May 2005 08:56:45 UTC