Theoretically you may define multiple schemes in XML, so you may mix different 
schemes. One of the schemes may be used without the prefix. 
So something like: 
<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
https://maven.apache.org/xsd/maven-4.0.0.xsd";
xmlns:m4_1="http://maven.apache.org/POM/4.1.0"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";
>

With the above you then could define something like:
<m4_1:subprojects></m4_1:subprojects>

I once tried to mix pom.xml with xhtml but Maven did not react very well back 
then :-).


Mit freundlichen Grüßen
Mirko Friedenhagen
— 



Mit freundlichen Grüßen
Mirko Friedenhagen
— 

> Am 13.03.2026 um 19:23 schrieb Sylwester Lachiewicz <[email protected]>:
> How to distinguish that with option B pom is for maven 3 or Maven 4 build
> pom for XML based tools?
> Do we have easy way to extend existing namespace?
> 
> Sylwester
> 
> czw., 12 mar 2026, 16:15 użytkownik Elliotte Rusty Harold <
> [email protected]> napisał:
> 
>> On Sat, Mar 7, 2026 at 5:13 PM Hervé Boutemy <[email protected]> wrote:
>>> I'm late to the discussion, but we need to close it
>>> I'll need clarity on this namespace topic, it's too vague to my old XML
>> related knowledge,
>>> and define what concrete
>> 
>> This is essentially correct. I strongly recommend option B, keep
>> http://maven.apache.org/POM/4.0.0 from Maven 3 for Maven 4.x, 5 etc...
>> 
>> 
>>> 1. the situation:
>>> Maven 3 POM xmlns="http://maven.apache.org/POM/4.0.0";
>>> https://maven.apache.org/ref/3.9.13/maven-model/maven.html
>>> Maven 4 POM build xmlns="http://maven.apache.org/POM/4.1.0";
>>> https://maven.apache.org/ref/4.0.0-rc-5/api/maven-api-model/maven.html
>>> 2. analysis:
>>> IIUC, changing the value from Maven 3 to 4 is a problem for XML-level
>> tools, that recognize the value to adapt.
>>> And also changing in the future for every Maven 4.x version, as we
>> currently implicitely will change again the namespace with a version number
>> in the future
>>> is this analysis correct?
>>> (I'm interested into pointers to concrete problems for XML-level tools,
>> as it remains vague to me)
>>> 3. options:
>>> A. continue as implemented
>>> B. keep http://maven.apache.org/POM/4.0.0 from Maven 3 for Maven 4.x, 5
>> etc...
>>> C. change Maven 4.0 to http://maven.apache.org/POM and stay with this
>> value in the future
>>> any other option?
>>> 4. complexity of implementing options (from a Maven core perspective):
>>> are every option as easy to implement, or is any option complex to do?
>>> Doing a choice for this topic should not be that hard, with a few
>> efforts from everybody
>>> or "just for fun", perhaps the only option is to drop XML to close this
>> XML-specific complexity...
>>> Regards,
>>> Hervé
>>> On 2026/02/22 11:46:58 Maarten Mulders wrote:
>>>> Hi Elliotte,
>>>> Thank you for your elaboration! It didn't click together for me earlier
>>>> but I think I now better understand your concern; this sentence
>>>> summarises it for me: "A group element is still a group element."
>>>> As far as I know, being able to change namespaces was never the goal of
>>>> separating build and consumer POM. The goal was to be able to evolve
>> the
>>>> schema of the POM that a developer uses to build the project, without
>>>> affecting those that consume the project. I think we could have done
>>>> that without changing XML namespaces. And I fully agree with Elliotte:
>>>> if we revert that change before Maven 4.0.0, it will be a lot easier
>>>> than trying to repair this after releasing 4.0.0.
>>>> I know we aren't voting on this (yet). Nevertheless, I would say it's
>>>> better to ship Maven 4.0.0 a bit later but in a good shape, than
>>>> shipping it early with a known large defect.
>>>> Thanks,
>>>> Maarten
>>>> On 14/02/2026 23:46, Elliotte Rusty Harold wrote:
>>>>> On Sat, Feb 14, 2026 at 8:25 PM Romain Manni-Bucau
>>>>> <[email protected]> wrote:
>>>>>> Hi
>>>>>> My 2cts would be
>>>>>> 1. this is the whole goal of the consumer pom work did in maven 3
>> so the
>>>>>> correct phrasing is "we must come with a new namespace", what is
>> also true
>>>>>> is "we must support maven 4.0.0 model version and older namespace"
>> => we
>>>>>> are good
>>>>> No, that is the concern and that is not a resolution. The goal is to
>>>>> be able to use XML tools like XPath and XSLT to process pom files,
>>>>> both inside and outside Maven itself. By changing the namespace this
>>>>> becomes immensely more difficult because instead of adding a few new
>>>>> elements it's like we threw away all the existing elements and
>>>>> replaced every one with a new element.
>>>>> But this is not what we have done, or at least not what we should do.
>>>>> A group element is still a group element. A dependency element is
>>>>> still a dependency element. And so forth. These elements haven't
>>>>> changed so their names shouldn't have changed, and that includes the
>>>>> namespace.
>>>>> Many developers still confuse namespaces with schema versions, but
>>>>> that is not how namespaces were designed to work. In general the
>>>>> namespace should not change simply because a new version of a
>>>>> vocabulary has been released. In Maven's case that's what
>> modelVersion
>>>>> is for. Releasing a new version of a vocabulary does not justify
>>>>> changing the namespace, and there is a large cost associated with
>>>>> doing so.
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [email protected]
>>>> For additional commands, e-mail: [email protected]
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>> 
>> 
>> --
>> Elliotte Rusty Harold
>> [email protected]
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]

Reply via email to