RE: [xml-dev] which xml schema tools do it right concerning including attributes xml:lang and xml:space

I should also add that you probably should update the schema you are using to define the attributes from the XML namespace to include xml:base. Such a schema can be obtained at http://www.w3.org/2001/xml.xsd or http://www.w3.org/2001/03/xml.xsd 

 -----Original Message----- 
 From: Dare Obasanjo 
 Sent: Wed 4/17/2002 9:24 AM 
 To: Paul Hermans; xml-dev@lists.xml.org 
 Cc: xmlschema-dev@w3.org 
 Subject: RE: [xml-dev] which xml schema tools do it right concerning including attributes xml:lang and xml:space
 
 

 Interesting, I was going to suggest looking at the schema For Schema(sForS)[0] as a guide as to the best way of doing this since it doesn't look like the W3C XML Schema recommendation (prose version) clearly spells this out. On looking at the sForS it looks like
 it assumes that the XML namespace (http://www.w3.org/XML/1998/namespace) is bound to the prefix "xml" without ever declaring this prefix-namespaceURI matching. This is in line with the XML namespaces recommendation[1].
 
 So as for your first question
 
 1. "Now wanting to use these attributes in other schemas some tools require that the
 namespace ="http://www.w3.org/XML/1998/namespace" is explicitly declared and using the xml prefix
 is OK."
 
 This is incorrect because by definition any tool that supports XML namespaces assumes that namespace is defined for a well-formed XML document. You shouldn't have to explicitly map the "xml" prefix to the "http://www.w3.org/XML/1998/namespace <http://www.w3.org/XML/1998/namespace> " namespace.
    
 2. "Other tools refuse the prefix xml since it is reserved for W3C needs and then the following works"
 
 This is a two part answer. (a.) The XML namespaces recommendation doesn't specify what should happen if one tries to redefine the prefix-namespace mapping for the "xml" prefix so it is understandable for a processor to disallow although a clever one might just allow it if the mapping is too the XML namespace (and thus a NOOP). (b.) If the processor requires the XML namespace to be declared then the behavior is incorrect, see the answer to (1.) above.
 
 3. "Still other tools don't want the namespace declaration at all"
 
 This is the behavior most consistent with that of the normative sForS and the XML namespace recommendation.
 
 However, I suggest waiting for Jeni or Henry T to pipe in before taking my word for any of this. :)
 
 PS: xmlschema-dev is a better list for schema questions.
 
 [0] http://www.w3.org/TR/xmlschema-1/#normative-schemaSchema
 [1] http://www.w3.org/TR/1999/REC-xml-names-19990114/#nsc-NSDeclared
 
         -----Original Message-----
         From: Paul Hermans [mailto:paul_hermans@protext.be]
         Sent: Wed 4/17/2002 8:14 AM
         To: 'xml-dev@lists.xml.org'
         Cc:
         Subject: [xml-dev] which xml schema tools do it right concerning including attributes xml:lang and xml:space
        
        
 
         Having in a separate schema file
         <?xml version="1.0"?>
         <schema targetNamespace="http://www.w3.org/XML/1998/namespace"
                   xmlns:xml="http://www.w3.org/XML/1998/namespace"
                   xmlns="http://www.w3.org/2001/XMLSchema" >
 
                 <attribute name="lang" type="language"/>
 
                 <attribute name="space" default="preserve">
                         <simpleType>
                                 <restriction base="NCName">
                                         <enumeration value="default"/>
                                         <enumeration value="preserve"/>
                                 </restriction>
                         </simpleType>
                 </attribute>
 
                 <attributeGroup name="specialAttrs">
                         <attribute ref="xml:lang"/>
                         <attribute ref="xml:space"/>
                 </attributeGroup>
         </schema>
 
         Now wanting to use these attributes in other schemas some tools require that the
         namespace ="http://www.w3.org/XML/1998/namespace" is explicitly declared and using the xml prefix
         is OK.
 
         <schema targetNamespace="XXXX"
                 xmlns:xxx="XXXX"
                 xmlns="http://www.w3.org/2001/XMLSchema"
         -->     xmlns:xml="http://www.w3.org/XML/1998/namespace"
                 elementFormDefault="qualified"
                 attributeFormDefault="unqualified">
                
                 <import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml_tva.xsd"/>
 
 
         Other tools refuse the prefix xml since it is reserved for W3C needs and then the following works
 
         <schema targetNamespace="XXXX"
                 xmlns:xxx="XXXX"
                 xmlns="http://www.w3.org/2001/XMLSchema"
         -->     xmlns:x="http://www.w3.org/XML/1998/namespace"
                 elementFormDefault="qualified"
                 attributeFormDefault="unqualified">
                
                 <import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml_tva.xsd"/>
 
         Still other tools don't want the namespace declaration at all
 
         <schema targetNamespace="XXXX"
                 xmlns:xxx="XXXX"
                 xmlns="http://www.w3.org/2001/XMLSchema"
         -->    
                 elementFormDefault="qualified"
                 attributeFormDefault="unqualified">
 
         Which one is the correct way ?
 
 
         Paul
 
                
 
 

Received on Wednesday, 17 April 2002 12:38:21 UTC