- From: Noe Michejda <noe_michejda@7thportal.pl>
- Date: Tue, 24 Feb 2004 02:01:43 +0100
- To: <public-qt-comments@w3.org>
- Message-ID: <002901c3fa71$c5b3f6e0$0201a8c0@a2>
Current syntax of SequenceType gives user no control over allowing substitutions of element or not. User can't test for local element name if there is global declaration with same name without allowing of elements from substitution group of global element. Or element will be matched agains unanticipated type from global declaration, where user wanted only name test. And there will be no warning from processor. If schema is authored by another person than stylesheet or query this can lead to disaster if at some point declaration will be added without knowledge of stylesheet author. Using of declarations and substitution groups should be explicit. I propose following changes in syntax of elementTest to something like this: element() : matches any element element(*,type) : matches type if element type is 'type' or is derived from it element(qname ["decl" | "subst"] [,type] ["nillable"]) if "decl" is present, element is matched to global element declaration if "subst" is present, element is matched to global element declaration allowing substitutions if neither "decl" or "subst" is present element name is matched to 'qname' additionally if 'type' is present, element type must be derived from 'type' element(SchemaContextPath qname) element is matched to local element declaration same applies to attribute() [without 'subst'] This will remove synonyms: element() = element(*) = element(*,*) attribute() = attribute(*) = attribute(*,*) Another (maybe better to read) notation: element(decl(qname),type) element(subst(qname),type) or element(substitutions(qname),type) element(substitution(qname),type) attribute(decl(qname)) etc. Best Regards, Noe Michejda 7th Portal S.C.
Received on Monday, 23 February 2004 20:10:00 UTC