public Document run() throws ParserConfigurationException, IOException, SAXException, TransformerException {
        DocumentBuilder docBuilder = XML.getDocumentBuilder();
        Document document = docBuilder.parse(new InputSource(xmlInput));
        return execute(document);
    }
@Test
    public void testPropertiesWithOverlappingNames() throws Exception {
        String input =
                """
                <?xml version="1.0" encoding="UTF-8" standalone="no"?>
                <services xmlns:deploy="vespa" xmlns:preprocess="properties" version="1.0">
                  <preprocess:properties>
                    <sherpa.host>gamma-usnc1.dht.yahoo.com</sherpa.host>
                    <sherpa.port>4080</sherpa.port>
                    <lidspacecompaction_interval>3600</lidspacecompaction_interval>
                    <lidspacecompaction_interval deploy:environment='prod'>36000</lidspacecompaction_interval>
                    <lidspacecompaction_allowedlidbloat>50000</lidspacecompaction_allowedlidbloat>
                    <lidspacecompaction_allowedlidbloat deploy:environment='prod'>50000000</lidspacecompaction_allowedlidbloat>
                    <lidspacecompaction_allowedlidbloatfactor>0.01</lidspacecompaction_allowedlidbloatfactor>
                    <lidspacecompaction_allowedlidbloatfactor deploy:environment='prod'>0.91</lidspacecompaction_allowedlidbloatfactor>
                  </preprocess:properties>
                  <config name='a'>
                     <a>${lidspacecompaction_interval}</a>
                     <b>${lidspacecompaction_allowedlidbloat}</b>
                     <c>${lidspacecompaction_allowedlidbloatfactor}</c>
                     <host>${sherpa.host}</host>
                     <port>${sherpa.port}</port>
                  </config>
                  <admin version="2.0">
                    <adminserver hostalias="node0"/>
                  </admin>
                </services>""";

        String expectedProd =
                """
                <?xml version="1.0" encoding="UTF-8" standalone="no"?>
                <services xmlns:deploy="vespa" xmlns:preprocess="properties" version="1.0">
                  <config name='a'>
                     <a>36000</a>
                     <b>50000000</b>
                     <c>0.91</c>
                     <host>gamma-usnc1.dht.yahoo.com</host>
                     <port>4080</port>
                  </config>
                  <admin version="2.0">
                    <adminserver hostalias="node0"/>
                  </admin>
                </services>""";
        Document docDev = (new XmlPreProcessor(appDir,
                                               new StringReader(input),
                                               InstanceName.defaultName(),
                                               Environment.prod,
                                               RegionName.defaultName(),
                                               Cloud.defaultCloud().name(),
                                               Tags.empty()).run());
        TestBase.assertDocument(expectedProd, docDev);
    }