RE: xsd:any and its processContents and namespace attribute


Yes, although as I indicated I don't think you should think of it as
precedence, because I think that will lead you down some wrong decisions,
for example when implementing the uniqueness constraint (UPAC).  They are
simply answering two different questions:  namespace helps decide when this
particle matches, processContents helps decide whether this particle
validates successfully when it has matched.  They aren't involved in
answering the same question, so it's not really an issue of precedence.
I'm only slightly nervous with my interpretation since the spec explains it
all in a validation rule.  At any rate, I think your question is clearly
answered in the first validation rule in 3.10.4 [1] with the words "When
this constraint applies":

Validation Rule: Item Valid (Wildcard)

For an element or attribute information item to be locally ·valid· with
respect to a wildcard constraint its [namespace name] must be ·valid· with
respect to the wildcard constraint, as defined in Wildcard allows Namespace
Name (§3.10.4).
When this constraint applies the appropriate case among the following must
be true:

1 If {process contents} is lax, then the item has no ·context-determined
declaration· with respect to Assessment Outcome (Element) (§3.3.5),
Schema-Validity Assessment (Element) (§3.3.4) and Schema-Validity
Assessment (Attribute) (§3.2.4).
2 If {process contents} is strict, then the item's ·context-determined
declaration· is mustFind.
3 If {process contents} is skip, then the item's ·context-determined
declaration· is skip.


[1] http://www.w3.org/TR/xmlschema-1/#cvc-wildcard



"Shlomo Yona" <S.Yona@F5.com>@w3.org on 08/29/2007 08:34:41 AM

Sent by:    xmlschema-dev-request@w3.org


To:    Morris Matsa/Somers/IBM@IBMUS
cc:    <xmlschema-dev@w3.org>
Subject:    RE: xsd:any and its processContents and namespace attribute



Thank you.
So my previous email is wrong?
The namespace has precedence over the processContents

Shlomo

-----Original Message-----
From: Morris Matsa [mailto:mmatsa@us.ibm.com]
Sent: ã 29 àåâåñè 2007 14:55
To: Shlomo Yona
Cc: xmlschema-dev@w3.org
Subject: Re: xsd:any and its processContents and namespace attribute


I think that these are orthogonal properties.  First, the wildcard matches
any elements that pass the namespace check.  Then, for any elements that
match, you process them according to the method defined by the
"processContents".  So, from your options "skip only if the namespace ..."
--- otherwise, if it's in the target namespace, then this particle wouldn't
match the element at all, and either some other particle would match it
(maybe an outer choice has other options) or otherwise the instance would
be invalid.


"Shlomo Yona" <S.Yona@F5.com>@w3.org on 08/29/2007 01:31:15 AM

Sent by:    xmlschema-dev-request@w3.org


To:    <xmlschema-dev@w3.org>
cc:
Subject:    xsd:any and its processContents and namespace attribute


Hello,

When using both processContents and namespace attributes in an xsd:any
which one of the two has precedence?

For example:
<xsd:any namespace=”##other” processContents=”skip”/>

Should I just skip when processing or should I skip only if the namespace
of the observed element in the XML instance is from a namespace other than
the target namespace of the schema?

Thanks.

Shlomo.

Received on Wednesday, 29 August 2007 12:52:01 UTC