- From: Michael Kay <mike@saxonica.com>
- Date: Thu, 25 Jan 2007 10:24:18 -0000
- To: "'Wang, Zhuo'" <zhuo.wang@intel.com>, <xmlschema-dev@w3.org>
- Cc: "'Zhang, Hongjiang'" <hongjiang.zhang@intel.com>, "'Yu, Zhiqiang'" <zhiqiang.yu@intel.com>, "'Moog, Thomas H'" <thomas.h.moog@intel.com>
I meet a case when I do the schema testing, which as the following: <xs:schema> <xs:complexType name="One"> <xs:sequence> <xs:element name="elem1" type="xs:string" fixed="abc"/> <xs:element name="elem1" type="xs:string" fixed="123"/> </xs:sequence> </xs:complexType> </xs:schema> There are two elements with the same name "elem1" and the same target namespace inside the <xs:sequence>. Is this allowed? Yes, provided (a) that the elements have the same type, and (b) that you don't violate the UPA constraint (which would be violated in this example if the first element were optional). This example should be OK. I read the spec and get the description which says: 3.15.6 Constraints on Schemas as a Whole Schema Component Constraint: Schema Properties Correct 2 Each of the {type definitions} <http://www.w3.org/TR/xmlschema-1/#type_definitions#type_definitions> , {element declarations} <http://www.w3.org/TR/xmlschema-1/#element_declarations#element_declarations > , {attribute group definitions} <http://www.w3.org/TR/xmlschema-1/#attribute_group_definitions#attribute_gro up_definitions> , {model group definitions} <http://www.w3.org/TR/xmlschema-1/#model_group_definitions#model_group_defin itions> and {notation declarations} <http://www.w3.org/TR/xmlschema-1/#notation_declarations#notation_declaratio ns> must not contain two or more schema components with the same {name} and {target namespace}. I think this case violate this rule. These are local element declarations. The rule applies only to global element declarations (<xs:element> as a child of <xs:schema>). Michael Kay http://www.saxonica.com/
Received on Thursday, 25 January 2007 10:24:29 UTC