- 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