- From: <bugzilla@wiggum.w3.org>
- Date: Fri, 10 Jul 2009 21:52:57 +0000
- To: www-xml-schema-comments@w3.org
http://www.w3.org/Bugs/Public/show_bug.cgi?id=7096 Summary: clarifications needed for annotation mapping? Product: XML Schema Version: 1.1 only Platform: Macintosh OS/Version: Mac System 9.x Status: NEW Severity: normal Priority: P2 Component: Structures: XSD Part 1 AssignedTo: David_E3@VERIFONE.com ReportedBy: cmsmcq@blackmesatech.com QAContact: www-xml-schema-comments@w3.org CC: cmsmcq@blackmesatech.com Reading the description of annotation mappings today, I find myself uncertain about a couple aspects of this design. 1 The first clause of the definition contains a note reading: Note: As described above (earlier in this section), the {attributes} property of each Annotation component includes any attribute information items on the parent (and possibly ancestors) of the <annotation> element which have a [namespace name] different from the XSD namespace. Reading this, I find myself asking "and possibly ancestors? How am I to know whether ancestors are included or not?" I believe the answer is given in the XML mapping tableau, which says that non-XSD attributes are copied from the annotation element itself, from the source-declaration element which maps to the component, and from any intervening elements. We could say that again here and make the note read: Note: As noted above, the {attributes} property of each Annotation component includes all the attribute information items on the annotation element itself, on the XML element which represents (and maps to) the component being annotated, and on any intervening XML elements, if those attribute information items have [namespace names] different from the XSD namespace. 2 The second clause of the definition of annotation mapping says that if there are any other non-XSD attributes on any element E in the set of elements being mapped, there will be an annotation component with empty {application information} and empty {user information}, which will carry the relevant attributes from E.[attributes]. Consider the example <xsd:complexType name="T23" my:color="green"> <xsd:complexContent my:stone="diamond"> <xsd:extension base="B:T23" my:dow="Tuesday"> <xsd:sequence> <xsd:element ref="A:other"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> Does the definition of annotation mapping mean that there will be three annotation components on type T23, A1, A2, and A3, with A1.{attributes} = { my:color='green' } A2.{attributes} = { my:stone='diamond' } A3.{attributes} = { my:dow='Tuesday' } Or will there be a single annotation component, with {attributes} = { my:color='green', my:stone='diamond', my:dow='Tuesday' } ? Clause 2 says 2 If there are any attribute information items among the [attributes] of any element information item E in ES with a [namespace name] different from the XSD namespace, which are not included in the {attributes} of any Annotation from clause 1, then there is an Annotation component in AS whose {application information} and {user information} are the empty sequence and whose {attributes} contains all and only such attribute information items among E.[attributes]. The words "then there is an Annotation component in AS ... whose {attributes} contains" the otherwise homeless attributes would seem to suggest there should be one annotation. The words "whose {attributes} contains all and only such attribute information items among E.[attributes]", on the other hand, suggest to this reader a different annotation compnent for each E in the element set which carries non-XSD attributes. The answer will matter for a SCDs test which asks for /type::T23/annotation[2] Trying to find wording less susceptible to misunderstanding, I suggest the following two alternatives for consideration: Plan A: 2 If any element item E in ES has any attribute information items A such that all of the following are true: 2.1 A is in E.[attributes] 2.2 A.[namespace name] is present and not the XSD namespace 2.3 A is not included in the {attributes} property of any annotation component described in clause 1 then for each such E, an Annotation component C will appear in AS, with C.{application information} and C.{user information} being the empty sequence and C.{attributes} containing all and only those attribute information items A among E.[attributes]. Plan B: 2 If any element items E in ES have any attribute information items A such that all of the following are true: 2.1 A is in E.[attributes] for some E in ES 2.2 A.[namespace name] is present and not the XSD namespace 2.3 A is not included in the {attributes} property of any annotation component described in clause 1 then one Annotation component C will appear in AS, with C.{application information} and C.{user information} being the empty sequence and C.{attributes} containing all and only those attribute information items A. Note: if the attribute information items in C.{attributes} originate on different elements in ES, they are not guaranteed to have distinct names. -- Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug.
Received on Friday, 10 July 2009 21:53:10 UTC