- From: Norman Walsh <ndw@nwalsh.com>
- Date: Wed, 13 Aug 2008 13:59:04 -0400
- To: public-xml-processing-model-wg@w3.org
- Message-ID: <m2proc4x07.fsf@nwalsh.com>
/ Toman_Vojtech@emc.com was heard to say:
|>
|> <p:pipeline exclude-inline-prefixes="#all">
|> ....
|> <p:group xmlns:d="my-new-namespace">
|> ....
|> <p:inline>
|> <root name="d:foo"/>
|> </p:inline>
|> ....
|> </p:group>
|> ....
|> </p:pipeline>
|>
|> Would produce:
|>
|> <root xmlns:d="my-new-namespace" name="d:foo"/>
|>
|
| I am sorry if I don't see something, but how can this be so? How can the
| XProc processor know (without a schema information) that the value of
| root/@name is a QName and not just a literal string?
It doesn't know anything about the value or its type. The example is a
little confusing because it attempts to illustrate the case where the
excluding namespaces (a) hurts and (b) isn't corrected by namespace
fixup.
The #all on p:pipeline sets the excluded prefixes to "p:" (because
that's the only prefix in-scope on that element). When "d:" is
subsequently added, it isn't excluded, so it comes through.
| If I had a pipeline
| like this:
|
| <p:pipeline exclude-inline-prefixes="#all">
| ....
| <p:group xmlns:d="my-new-namespace">
| ....
| <p:inline>
| <root name="c:the-third-letter-in-alphabet"/>
| </p:inline>
| <p:inline>
| <root name="d:the-fourth-letter-in-alphabet"/>
| </p:inline>
| ....
| </p:group>
| ....
| </p:pipeline>
|
| I would be badly surprised if I got something like this as the result:
|
| <root name="c:the-third-letter-in-alphabet"/>
| <root xmlns:d="my-new-namespace"
| name="d:the-fourth-letter-in-alphabet"/>
No, you'd get this:
<root xmlns:d="my-new-namespace" name="c:the-third-letter-in-alphabet"/>
<root xmlns:d="my-new-namespace" name="d:the-fourth-letter-in-alphabet"/>
On neither element would d: be excluded.
Now, you might also be surprised that this:
<p:pipeline xmlns:d="my-new-namespace" exclude-inline-prefixes="#all">
....
<p:group>
....
<p:inline>
<root name="c:the-third-letter-in-alphabet"/>
</p:inline>
<p:inline>
<root d:name="some value"/>
</p:inline>
....
</p:group>
....
</p:pipeline>
produces
<root name="c:the-third-letter-in-alphabet"/>
<root xmlns:d="my-new-namespace" d:name="some value"/>
but that's just namespace fixup in action.
Be seeing you,
norm
--
Norman Walsh <ndw@nwalsh.com> | A life, admirable at first sight, may
http://nwalsh.com/ | have cost so much in imposed
| liabilities, chores and self-abasement,
| that, brilliant though it appears, it
| cannot be considered other than a
| failure. Another, which seems to have
| misfired, is in reality a triumphant
| success, because it has cost so
| little.--Henry De Montherlant
Received on Wednesday, 13 August 2008 17:59:48 UTC