RE: Namespace qualification

Hi Gregory,

> Is
> the following
> XML instance valid ?
>
> <a xmlns="aaa" q="1" w="2"/>

No, 'w' must be prefixed, because default namespace declarations do not
apply to attributes.  It would have to look like this:

    <pre:a xmlns:pre="aaa" q="1" pre:w="2"/>

> However, the attribute's namespace is
> considered to be the same as element's namespace if no
> namespace prefix is
> specified for the attribute. Am I right ? So, if there is an

No, the attribute's namespace is _not_ considered to be the same as the
element's.  (Although some would say that the attribute is "indirectly
associated with" the element's namespace.)

Another thing I noticed about your type definition (below): since you are
adding attributes to a simple type, this is considered an extension rather
than a restriction.  Simply replace "restriction" with "extension" and it
should be fine.


Hope that helps,
Priscilla
------------------------------------------------------------------
Priscilla Walmsley                          priscilla@walmsley.com
Vitria Technology                            http://www.vitria.com
Author, Definitive XML Schema                  (Prentice Hall PTR)
------------------------------------------------------------------

> -----Original Message-----
> From: xmlschema-dev-request@w3.org
> [mailto:xmlschema-dev-request@w3.org]On Behalf Of Gregory Khanlarov
> Sent: Tuesday, January 22, 2002 4:54 PM
> To: xmlschema-dev@w3.org
> Subject: Namespace qualification
>
>
> Hi,
>
> I have namespace qualification question.
> Suppose, we have the following schema:
>
> <schema xmlns="http://www.w3.org/2001/XMLSchema"
>     targetNamespace="aaa"
>     elementFormDefault="qualified"
>     attributeFormDefault="unqualified"
> >
> <element name="a">
>     <complexType>
>         <simpleContent>
>             <restriction base="string">
>                 <attribute name="q"/>    <!-- Attribute must
> be unqualified,
> since attributeFormDefault equals to 'unqualified' -->
>                 <attribute name="w" form="qualified" />
> <!-- Here we
> state that the attribute must be qualified -->
>             </restriction>
>         </simpleContent>
>     </complexType>
> </element>
> </schema>
>
> Thus, we have string-content element "a" with two attributes.
> Attribute 'q'
> must be unqualified and attribute 'w' must be qualified. Is
> the following
> XML instance valid ?
>
> <a xmlns="aaa" q="1" w="2"/>
>
> I believe, this is ambiguos case. According to the spec
> (http://www.w3.org/TR/REC-xml-names/#defaulting) default
> namespaces do not
> apply directly to attributes. However, the attribute's namespace is
> considered to be the same as element's namespace if no
> namespace prefix is
> specified for the attribute. Am I right ? So, if there is an
> error than
> where is it ? In namespace qualification of attribute 'q' or 'w' ?
>
> Thank you,
> Gregory
>
>
>

Received on Wednesday, 23 January 2002 15:37:35 UTC