Re: Attribute Uses

Hi John,

> The "Attribute Use" described in section 3.2.2 of the Structures
> spec when a "ref" attribute is present seems to indicate that, if
> present, the default/fixed value must match the value specified in
> the declaration (the globally defined Attribute):
>
> "value constraint} If there is a default or a fixed [attribute]
> <http://www.w3.org/TR/xml-infoset/>, then a pair consisting of the ·actual
> value· (with respect to the {type definition} of the {attribute
> declaration}) of that [attribute] <http://www.w3.org/TR/xml-infoset/> and
> either default or fixed, as appropriate, otherwise ·absent·."

From what I can tell, what this says is that when you refer to a
global declaration for an attribute, then the value constraint
specified on that global declaration is completely ignored. All that
matters is whether the xs:attribute element has a default/fixed
attribute on it or not; if it doesn't, then there's no value
constraint. [This seems a bit strange to me, as I'd expect the
attribute declaration to be able to supply a default default/fixed
value, but I think that's what this is saying.]

When it says "with respect to the {type definition} of the {attribute
declaration}" it's talking about interpreting the value of the
fixed/default attribute based on the simple type of the attribute, as
declared in the attribute declaration. So for example if you had:

<xs:attribute name="date" type="xs:date" />

and then:

  <xs:attribute ref="date" default="  2002-06-06  " />

then the value '2002-06-06' would be interpreted as a date rather than
a string (and thus have whitespace stripped, for example).

> However, item 4 of Validation Rule: Attribute Locally Valid in
> section 3.2.4 states:
>
> "4 The item's ·actual value· must match the value of the {value
> constraint}, if it is present and fixed. "

This is talking about the fact that if an attribute use's {value
constraint} isn't absent, and is fixed (i.e. there's a fixed attribute
on the xs:attribute element in the schema), then the attribute in the
instance document must have that value.

> This seems to indicate that default values can be overridden in
> Attribute Uses. XML Spy seems to allow the value to be overridden
> regardless of whether the value constraint is fixed or default.

I think it's correct that default and fixed values can both be
overridden (in fact the ones on global attribute declarations are
ignored, so they are *always* overridden), and that, from your
description, XML Spy is performing correctly.

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/

Received on Thursday, 6 June 2002 12:05:51 UTC