Re: schemaLocation

Mind you, XML already reserves any name starting with 'xml'.  So that got me 
to thinking you could do:

mycoolns:xmlSchemaLocation="http://someothercoolurl.com/file.xsd"

But then, it's the whole name that has to be xml prefixed, so you'd have to 
do something like:

xmlSchemaLocation:mycoolns="http://someothercoolurl.com/file.xsd"

This looks very xmlns use-case like, and has potential I guess.  However, I 
think the xmlns use-case is a bit of a fudge (or at best an exception) as 
normally a name is split into namespace prefix and local part.  Having some 
names being split one way and other names that are split other ways is a 
recipe for disaster in the long term.  (Especially if it opens the door to 
splitting names in other ways.)

If you can't mess with the attribute name, then that really leaves you with 
attribute value.  As there may be multiple schemas that define an XML 
instance, then you need to define multiple schema locations and with that, 
which of the schemas is actually associated with a particular location. 
Hence the list of pairs.  (See the example in 
http://www.w3.org/TR/xmlschema-1/#schema-loc)

XML has no mechanism for reserving all of the locally named attributes in a 
particular namespace, hence putting it into the XML instance namespace.

What would have been helpful I think is to either have predefined that 'xsi' 
is automatically known to all XML processors (without having to do an 
namespace declaration) or maybe even better, augment the xml namespace so 
that you could do:

 <stylesheet xmlns="http://www.w3.org/1999/XSL/Transform"
            xmlns:html="http://www.w3.org/1999/xhtml"
            xml:schemaLocation="http://www.w3.org/1999/XSL/Transform
                                http://www.w3.org/1999/XSL/Transform.xsd
                                http://www.w3.org/1999/xhtml
                                http://www.w3.org/1999/xhtml.xsd">
and:
    xml:type
    xml:nil

etc.

HTH,

Pete.
--
=============================================
Pete Cordell
Tech-Know-Ware Ltd
for XML to C++ data binding visit
http://www.tech-know-ware.com/lmx/
http://www.codalogic.com/lmx/
=============================================

----- Original Message ----- 
From: "George Cristian Bina" <george@oxygenxml.com>
To: "Mystra x64" <mystra_x64@fastmail.fm>
Cc: <xmlschema-dev@w3.org>
Sent: Sunday, March 18, 2007 7:54 AM
Subject: Re: schemaLocation


>
> Hi,
>
> One can think of many ways to do schema association, each have good points 
> and bad points.
> One bad point with your variant is that you reserve an infinite number of 
> attributes, one in each possible namespace.
> Anyway - the spec does not force you to use schema instance attributes, 
> the application that processes a document is free to take the schema from 
> wherever it wants so you can eventually implement your application to look 
> for schemaLocation attributes in different namespaces and use them to find 
> schemas - note that those schemas need to define also the schemaLocation 
> attribute.
>
> Regards,
> George
> ---------------------------------------------------------------------
> George Cristian Bina
> <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
> http://www.oxygenxml.com
>
> Mystra x64 wrote:
>> Hi,
>>  Why is schemaLocation is such a monstrous construct? I mean, let's say I
>> have
>> xmlns:mycoolns="http://url.com/ns". Then to specify a schema file I need
>> to write
>> xsi:schemaLocation="http://url.com/ns
>> http://someothercoolurl.com/file.xsd" and
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" to boot.
>>  Why not to use
>> mycoolns:schemaLocation="http://someothercoolurl.com/file.xsd" for that?
>>  i.e. any schema should have schemaLocation attribute in their namespace
>> regardless of definition.
>> Am I missing something?
>
> 

Received on Sunday, 18 March 2007 10:10:17 UTC