[
Lists Home |
Date Index |
Thread Index
]
Cams Ismael <Ismael.Cams@siemens.com> writes:
> What should be the behaviour when the optional tag <d> is missing. Both
> MSXML 4.0 and xsdvalid still check on the f1 attribute. So if we leave out
> the <d> tags in the example the file is invalid, because there are two
> <mayHaveDaughter> elements with a f1 attribute value 'c'. However with xsv
> no error is generated, and with XercesJ-2.3.0 I get following error: 'Not
> enough values specified for <unique> identity constraint specified for
> element'.
>
> So my question is, if one of the optional elements is not available, should
> this element be ignored or not. The recs seems to be not clear about that.
I believe the REC [1] is clear on this:
"For each node in the *target node set* all of the {fields}, with
that node as the context node, [must] evaluate to either an empty node-set
or a node-set with exactly one member, which must have a simple
type."
This condition is satisfied for your modified instance -- some of the
fields yield a one-member node-set whose single member has a simple
type, some yield an empty node-set.
"Call the subset of the *target node set* for which all the
{fields} evaluate to a node-set with exactly one member which is an
element or attribute node with a simple type the *qualified node
set*."
OK, so in some cases you now find your target node drops out, because
one of its fields yields an empty-node set. Since it's not in the
*qualified node set*, no error is possible, since the constraint is
xsd:unique, not xsd:key.
ht
[1] http://www.w3.org/TR/xmlschema-1/#section-Identity-constraint-Definition-Validation-Rules
--
Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
Half-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/
[mail really from me _always_ has this .sig -- mail without it is forged spam]
|