W3C home > Mailing lists > Public > xmlschema-dev@w3.org > April 2002

RE: Prohibited Attributes and Attribute Wildcards

From: Anli Shundi <ashundi@tibco.com>
Date: Wed, 10 Apr 2002 15:59:39 -0400
Message-ID: <339902DC0E58D411986A00B0D03D84320148F9E1@extmail.extensibility.com>
To: "'Dare Obasanjo'" <dareo@microsoft.com>, xmlschema-dev@w3.org
Cc: www-xml-schema-comments@w3.org
both the instance and the schema are valid.  I think this was explained
earlier in the list...
The "prohibited" attributes contribute to "nothing at all" (search the spec
for that phrase).
As you point out, "prohibited" makes sense only during restrictions but
I don't see any constrain on them as in this case to make the schema
Anli Shundi

-----Original Message-----
From: Dare Obasanjo [mailto:dareo@microsoft.com]
Sent: Wednesday, April 10, 2002 3:15 PM
To: xmlschema-dev@w3.org
Cc: www-xml-schema-comments@w3.org
Subject: Prohibited Attributes and Attribute Wildcards 

If I have a schema like this:
<xs:schema xmlns:xs=" http://www.w3.org/2001/XMLSchema
<http://www.w3.org/2001/XMLSchema> " attributeFormDefault="unqualified">
            <xs:element name="root">
                                    <xs:attribute name="attr"
                                    <xs:anyAttribute namespace="##local"
And an instance like this:

<root attr="123"/>

Should the attribute that is marked as use="prohibited" be rejected
according the W3C XML Schema recommendation? 
My initial instinct is that the instance document is invalid but this
excerpt from the W3C XML Schema Structures recommendation makes it seem like
the XML Schema WG explicitly wants the documents like those in the above
scenario to be valid. 

"NOTE: The only substantive function of the value prohibited for the use
attribute of an <attribute> is in establishing the correspondence between a
complex type defined by restriction and its XML representation. It serves to
prevent inheritance of an identically named attribute use from the {base
type definition}. Such an <attribute> does not correspond to any component,
and hence there is no interaction with either explicit or inherited
wildcards in the operation of Complex Type Definition Validation Rules
(3.4.4) or Constraints on Complex Type Definition Schema Components
(3.4.6). "
This makes it seem that prohibited is only designed to be used for removing
<attribute>'s from a complexType that has been derived by restriction even
though this same attribute could then be reinserted via an attribute
I'm not sure my interpretation is accurate or not but if it is I suspect a
bug in the recommendation.  

Drive defensively--buy a tank.
This posting is provided "AS IS" with no warranties, and confers no rights. 
You assume all risk for your use.  2002 Microsoft Corporation. All rights

Received on Wednesday, 10 April 2002 16:02:22 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 14:55:56 UTC