- From: Henry S. Thompson <ht@cogsci.ed.ac.uk>
- Date: 27 Feb 2002 09:07:12 +0000
- To: Stanley Guan <stanley.guan@oracle.com>
- Cc: Schema XML <xmlschema-dev@w3.org>, schema-ig w3c <w3c-xml-schema-ig@w3.org>
Stanley Guan <stanley.guan@oracle.com> writes: > Hi, > > Is empty string an allowed value for attribute "final" as shown > below? > > <xsd:element name="fe_valid" final="" type="tns:sd"/> > > XSV seems to take it o.k. But, as shown in the spec.: > <element > (snip) > final = (#all | List of (extension | restriction)) > (snip) > </element> > > Does this mean the only acceptable values for attribute > "final" are: > "#all", > "extension", or > "restriction"? The tableaux are non-normative, but are derived from the sForS, which is the normative reference here: <xs:union> <xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="#all"/> </xs:restriction> </xs:simpleType> <xs:simpleType> <xs:list itemType="xs:reducedDerivationControl"/> </xs:simpleType> </xs:union> <xs:simpleType name="reducedDerivationControl"> <xs:restriction base="xs:derivationControl"> <xs:enumeration value="extension"/> <xs:enumeration value="restriction"/> </xs:restriction> </xs:simpleType> So in fact all the following are allowed: final="#all" (first branch of the union) final="" (2nd branch of the union, length 0) final="extension" (2nd branch of the union, length 1) final="restriction" (2nd branch of the union, length 1) final="extension restriction" (2nd branch of the union, length 2) and a bunch of useless variations are also allowed final="restriction extension" (2nd branch of the union, length 2) final="restriction restriction" (2nd branch of the union, length 2) final="extension extension" (2nd branch of the union, length 2) final="restriction extension restriction" (2nd branch of the union, length 3) We could/probably should have restricted the length to two, but that still would have left some redundancy. Doesn't matter to the semantics. If you read the relevant mapping prose for {substitution group exclusions} in 3.3.2 [1] you will see that the length 0 list is entirely reasonable, is in fact the default (via the 'finalDefault' attribute on <xs:schema>), and means that the element's use as a substitution group head is not constrained. ht [1] http://www.w3.org/TR/xmlschema-1/#declare-element -- Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh W3C Fellow 1999--2001, part-time member of W3C Team 2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440 Fax: (44) 131 650-4587, e-mail: ht@cogsci.ed.ac.uk URL: http://www.ltg.ed.ac.uk/~ht/
Received on Wednesday, 27 February 2002 04:07:15 UTC