RE: "External" Attributes in Element of XML Instance

Thanks, Henry. Your insights really help!

-----Original Message-----
From: ht@cogsci.ed.ac.uk [mailto:ht@cogsci.ed.ac.uk]
Sent: Tuesday, March 11, 2003 10:11 AM
To: Liu, Hong
Cc: 'xmlschema-dev@w3.org'
Subject: Re: "External" Attributes in Element of XML Instance


"Liu, Hong" <Hong.Liu@neustar.biz> writes:

> Thanks for responding to my request. I was under the same impression as
> yours until recently when I looked at some examples more carefully.
> Specifically, there are three exceptions to the rule:
> 
> (1) XML Namespace attributes: xml:base, xml:space, xml:lang

Nope -- those have to be declared to be allowed.

> (2) XML Schema Namespace attributes: xmlns, xmlns:...

At the infoset level, those aren't really even attributes, but they're
certainly allowed.

> (3) XML Shema Instance Namespace attributes: xsi:type, xsi:nillable,
> xsi:schemaLocation, xsi:noNamespaceSchemaLocation, where xsi is the
> shorthand for the URI of the XML Schema Instance Namespace

Yes.

> These attributes seem to be able to appear in XML document instances
without
> the need to define <anyAttribute> in the corresponding document schema,
> though their usage are somewhat contrained in semantics. For example,
> xsi:type is only used to signal a derived type of the element at hand to
the
> XML processor.
> 
> My questions are:
> (a) Are they the only exceptions to the rule in terms of schema
validation?

So in fact the http://www.w3.org/2001/XMLSchema-namespace ones are the
_only_ real exceptison.

> (b) Where are these rule exceptions specified anywhere in XML Schema
> specifications?

  http://www.w3.org/TR/xmlschema-1/#section-Built-in-Attribute-Declarations
and
  clause 3 of http://www.w3.org/TR/xmlschema-1/#cvc-complex-type

> (c) Are there other exceptions to the rule out there that I don't know? 

No.

> Looking at the schema for XML Schema:
http://www.w3.org/2001/XMLSchema.xsd,
> the type "element" does include <xs:anyAttribute namespace="##other"
> processContents="lax"/> as one of its attributes. It seems, at least
> syntactically, that any attribute from a namespace other than
> #targetNamespace can appear in the start tag of any element in an
instance.

Nope, that makes it so that any attribute from a namespace other than
http:/www.w3.org/2001/XMLSchema can appear on the 'element' element in
the http:/www.w3.org/2001/XMLSchema namespace, and inded on almost all
the other elements in that namespace.

> I am confused, and would like you or other XML folks out there to shed
some
> lights on it. Thanks!

Hope this helps.

ht
-- 
  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]

Received on Tuesday, 11 March 2003 14:44:18 UTC