Re: [xml-dev] Napkin grammar

From
Pete Cordell <>
To
Amelia A Lewis <>, xml-dev <>
Date
2021-07-23T09:13:15Z
ID
<>
Thread
Re: [xml-dev] Napkin grammar
On 23/07/2021 04:07, Amelia A Lewis wrote:
> On Thu, 22 Jul 2021 23:20:37 +0100, Pete Cordell wrote:
>> If you're not interested in the new syntax being a subset of XML and
>> you still want namespaces, you'll want to consider an alternative way
>> of mapping namespace prefixes to namespaces so that the mapping is
>> available BEFORE it is required.  Currently the mapping mechanism
>> requires a fair bit of pre-fetching and caching which is sub-optimal.
>>
>> Something like the following might work:
>>
>> <:and http://www.whatever.com/:>
>> <and:harry />
> 
> Why? That still separates :and from and:, so if you start parsing on
> the <and:harry /> line, you're busted. And why use a non-default prefix
> for an element?
> 
> <harry xmlns="http://www.whatever.com">

And if the have the following and want to extract sally you are still 
busted:

<and:harry xmlns:and="http://www.whatever.com">
	<and:sally>
	...
	</and:sally>
</and:harry>

Or if you have the following and want harry:

<tom xmlns:and="http://www.whatever.com">
	<and:harry>
		<and:sally>
		...
		</and:sally>
	</and:harry>
</tom>

So the current scheme is troublesome to implement and only gives you a 
benefit in certain key situations.

> It is almost never *necessary* to bind a namespace to a prefix for use
> with elements. It can be verbose to repeatedly re-declare with a bad
> schema design like this:
> 
> <root>
>    <othernschild xmlns="http://other.ns.example.com" />
>    <othernschild xmlns="http://other.ns.example.com" />
>    <othernschild xmlns="http://other.ns.example.com" />
>    <othernschild xmlns="http://other.ns.example.com" />
>    <!-- ... -->
> </root>

That looks very undesirable.  And composition of grammars using 
components from different namespaces seems a common and useful use-case 
even if it isn't the only one.

Pete.
-- 
---------------------------------------------------------------------
Pete Cordell
Codalogic Ltd
C++ tools for C++ programmers, http://codalogic.com
Read & write XML in C++, http://www.xml2cpp.com
---------------------------------------------------------------------