Robert Scholte wrote:
> Well, where is the need for additional namespaces and how they be handled?
> The reader has a strict mode, should it fail or ignore unknown tags?
> I am aware of one request: adding a namespace on plugins configuration (to 
> validate its content), however the configuration-element is part of the maven 
> namespace, so I don't think this will work.

Yes, unless you want namespace prefixes, which is awkward for
<configuration> children.

However, there is one area where I would have liked better namespace
support in the past, namely when plugins need free-form XML
<configuration> elements. The most well-known use case is the
maven-antrun-plugin's <target> configuration element, which is of type
PlexusConfiguration.

AFAIK, the following won't work with a PlexusConfiguration target:

  <configuration xmlns:ex="http://example.org/";>
    <target>
      <ex:example>42</ex:example>
    </target>
  </configuration>

The PlexusConfiguration would only give you access to the QName
"ex:example" with no way to determine what URI the "ex" namespace prefix
is bound to.

You would have to write it like this:

  <configuration>
    <target xmlns:ex="http://example.org/";>
      <ex:example>42</ex:example>
    </target>
  </configuration>

Now that might not seem like a big difference, but remember that you
could move the xmlns:ex declaration all the way up to the project
<project> element and thereby sharing it among multiple <configuration>
elements.

FYI, the use case I had in the past was configuring XQuery/XSLT engines,
whose external variables and configuration options are namespaced:

  <configuration>
    <variables
        xmlns:ex="http://example.org/";
        xmlsns:xs="http://www.w3.org/2001/XMLSchema";
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
      <ex:example xsi:type="xs:decimal">42</ex:example>
    </variables>
  </configuration>

Not being able to place those namespace declarations on the root element
really hurts, in particular as the XMLSchema-instance namespace is
normally already declared there -- but you cannot "see" that from your
PlexusConfiguration.

Note that this is *not* an argument in favour of dropping Modello; it is
just an argument in favour of better namespace support (or rather
awareness) in something like PlexusConfiguration.

Best wishes,

Andreas Sewe

Attachment: OpenPGP_signature
Description: OpenPGP digital signature

Reply via email to