OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

relax-ng message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Subject: Re: [relax-ng] Compact syntax issue: namespace declarations



>> 2. Solve it by providing a syntax for local namespace declarations, e.g.
>>
>> local {
>>   namespace x = "http://www.example.com/1";
>
> I favor this, with slightly different syntax:
>
> 	local namespace x = "http://www.example.com/1"; { ... }
>
> Granted, if you have lots of local namespaces, this makes for
> lots of braces.  So we could allow
>
> 	local namespace x = "foo", y = "bar" { ... }

Using a comma feels inconsistent with other parts of the syntax:

  xsd:number { minInclusive = "2" maxInclusive = "3" }

  elem [ x ="foo" y = "bar" ]

I think this syntax would be OK if it was sufficient to allow such "local" 
expressions only where patterns were allowed.  However, consider something 
like

<text>
  <x:foo xmlns:x="http://www.example.com/1"/>
  <x:foo xmlns:x="http://www.example.com/2"/>
</text>

This would turn into:

[ local namespace x ="http://www.example.com/1"; { x:foo [] }
  local namespace x = http://www.example.com/2"; { x:foo [] } ] text

Blech! The curly braces will contain different things depending on the 
context of the "local" expression.  Also this is going to cause problems 
with reserved words: at the moment nothing inside square brackets is 
reserved.

An alternative would be to use an XMLish syntax, eg

 [ x:foo [ xmlns:x = "http://www.example.com/1"; ]
   x:foo [ xmlns:x = "http://www.example.com/2"; ] ] text

or

 xsd:QName { [xmlns:x = "http://www.example.com";] "x:y" }

This only makes sense as a syntax in the context of XML, but I think the 
only reason for providing local namespace declarations is compatibility 
with XML.  It's not a very beautiful syntax, but I think it would be 
unsurprising to users.

James






[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Powered by eList eXpress LLC