[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
RE: [xml-dev] XML processor behavior with unused NS declarations
- From: "Jim Tivy" <jimt@bluestream.com>
- To: "'Evan Lenz'" <evan@evanlenz.net>,"'Chuck Bearden'" <cbearden@rice.edu>
- Date: Thu, 23 Jul 2009 14:19:51 -0700
Hi Evan
Ideally an Xml processor should not throw away any namespace declarations
reduntant or not since sometimes people hack things into serializations
depending on a yet unused namespace declaration.
The apache serializer - now deprecated had a restriction where there could
only be one prefix declared for a given namespace url, so it dropped
redundant declarations that someone was depending on for some downstream
processing. I realize you can argue the downstream processing should not
rely on the upstream declaration - but hacks often make things work.
Jim
-----Original Message-----
From: Evan Lenz [mailto:evan@evanlenz.net]
Sent: Wednesday, July 22, 2009 2:15 PM
To: Chuck Bearden
Cc: xml-dev@lists.xml.org
Subject: Re: [xml-dev] XML processor behavior with unused NS declarations
Hi Chuck,
Sorry to be late to this thread. It sounds like you've gotten your
answer already: don't throw the namespace declaration away. If you're
interested in reading some more discussion/background on the reasons
why, check out the "QNames in Content" section of a paper/chapter I
wrote called "Understanding XML Namespaces".[1]
Of course, it's always safe to throw away *redundant* namespace
declarations when serializing XML, provided you're not just serializing
a fragment (in which case it wouldn't be redundant anymore). For
example, if the <h2> element in your example merely repeated the
xmlns:dc declaration verbatim, it would be safe to leave that out of
your serialized result. (And Canonical XML *requires* such superfluous
namespace declarations to be removed.) You just can't make any removals
that would make a difference to the XPath data model's abstraction of
your document.
Evan Lenz
Lenz Consulting Group
[1] http://lenzconsulting.com/namespaces/#qnames_in_content
[2] http://www.w3.org/TR/xml-c14n#SuperfluousNSDecl
Chuck Bearden wrote:
> Is a namespace-aware XML processor permitted to drop a namespace
> declaration when no elements or attributes in that namespace are used
> within the scope of the declaration? Say, given this example from the
> RDRa Primer:
>
> <div xmlns:dc="http://purl.org/dc/elements/1.1/">
> <h2 property="dc:title">The trouble with Bob</h2>
> <h3 property="dc:creator">Alice</h3>
> ...
> </div>
>
> there's no danger of the processor dropping the 'xmlns:dc'
> declaration, correct?
>
> I looked at the Namespaces in XML recommendation, and it doesn't
> mention omitting them. A namespace-unaware processor would treat NS
> declarations like attributes and hence not drop them, so I reckon that
> a NS-aware processor should match that behavior as well, but
> confirmation from the cognoscenti is welcome!
>
> Thanks
> Chuck
_______________________________________________________________________
XML-DEV is a publicly archived, unmoderated list hosted by OASIS
to support XML implementation and development. To minimize
spam in the archives, you must subscribe before posting.
[Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
Or unsubscribe: xml-dev-unsubscribe@lists.xml.org
subscribe: xml-dev-subscribe@lists.xml.org
List archive: http://lists.xml.org/archives/xml-dev/
List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]