W3C home > Mailing lists > Public > xmlschema-dev@w3.org > January 2006

Re: Hiding namespace prefixes in the instance document

From: George Cristian Bina <george@oxygenxml.com>
Date: Wed, 04 Jan 2006 15:21:52 +0200
Message-ID: <43BBCBF0.101@oxygenxml.com>
To: Antti Sissonen <antti_sissonen@hotmail.com>
Cc: mike@saxonica.com, xmlschema-dev@w3.org

You can write documents that contain elements from multiple namespaces 
without using prefixes, there is no limitation to declare only one 
namespace as default namespace. So you can have:

<Schema xmlns="schemaNamespace">
   <Aggregate xmlns="aggregateNamespace">
     <MaterialBatchIdentifier xmlns="commonNamespace">

and so on...

Import keeps the same target namespace for the imported components. 
Include includes components from a different target namespace. Again, it 
depends what namespace you want for your elements, that is what you 
should clarify first then you should think how to write the schema for that.

Regards,
George
---------------------------------------------------------------------
George Cristian Bina
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com


Antti Sissonen wrote:
> 
> 
> What I meant was not having namespace prefixes in the instance document 
> since in this particular case the xml instance presents business content 
> and the element naming should be exact.
> So if I am using a common element coming from a common component schema 
> it should look like this:
> <Schema>
>  <Aggregate>
>    <MaterialBatchIdentifier>
>    ...
> 
> instead of:
> <Schema>
>  <Aggregate>
>    <common:MaterialBatchIdentifier>
> 
> Does that help?
> 
> I've understood that I can get rid of prefixes by using the correct 
> design (venetian blind) and the default namespace definition 
> (xmlns="foo", not xmlns:foo="foo") if only one namespace is declared for 
> the instance. But then if I'd like to have a separate namespace for the 
> common components I run out of options. Thus, I've concluded that maybe 
> I just have to have common component schema in no namespace and use 
> include to have it available (chameleon).
> If the idea of the schema architecture is to assure that the same name 
> will not be used for different things the chameleon design would 
> support/force it. What is it that I'd lose if I switch from import to 
> include?
> 
> Rgrds,
> 
> Antti
> 
>>
>> > I have a schema that imports another one. I'm trying to keep
>> > the namespace
>> > prefixes hidden in the xml instance
>>
>> Sorry, I've no idea what you mean. What does a "hidden prefix" look like?
>>
>> Michael Kay
>> http://www.saxonica.com/
>>
>>
> 
> 
> 
Received on Wednesday, 4 January 2006 13:20:15 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 11 January 2011 00:14:52 GMT