Re: Understanding anyAttribute namespace="##any" and anyAttribute namespace="##local"

Hi Eliot,

There is an attribute called processContents on the xs:anyAttribute 
element. The default value for this attribute is "strict" which means 
that a full validation is performed on the attributes that will appear 
in the instance documents. If you add the 
xs:anyAttribute/@processContents attribute with the value set to skip 
for instance then your instance document should be reported as valid. 
Otherwise define your foo atribute in your schema file.

Hope that helps,
George
------------------------
http://www.oxygenxml.com

W. Eliot Kimber wrote:
> 
> I'm trying to understand how anyAttribute works and I'm getting a result 
> that seems to be incorrect but I'm sure it's my lack of understanding.
> 
> What I have in my schema is this declaration:
> 
>   <xs:complexType name="metadata">
>     <xs:choice maxOccurs="unbounded" minOccurs="0">
>       <xs:element name="metadata" type="mtbitopic:metadata"/>
>       <xs:element name="metadataitem" type="mtbitopic:metadataitem"/>
>       <xs:any namespace="##other"/>
>     </xs:choice>
>     <xs:anyAttribute namespace="##local"/>
>   </xs:complexType>
> 
> Note the "##local" for anyAttribute. The attributeFormDefault is set to 
> "unqualified".
> 
> In my instance governed by this schema, I have this markup:
> 
> <metadata foo="bar"/>
> 
> However, when I validate the document, both oXygen and Stylus Studio 
> report that the attribute "foo" is not allowed for the element metadata.
> 
> What basic but subtle aspect of XSD am I missing here.
> 
> Also, is there a way to say that you want to allow any qualified or 
> unqualified attributes? It doesn't appear to be the case but I have such 
> a hard time decoding the spec itself that I'm not sure what the actual 
> syntax of the namespace= attribute is, so I'm going off what I've 
> learned from the various tutorials I could find online.
> 
> Thanks,
> 
> Eliot

Received on Monday, 1 November 2004 21:39:38 UTC