2016-06-21 2 views
1

Ниже приводится полный муравей цель, которую я бегу, чтобы вставить драйвер для моего wildfly standalone.xml:Ant xmltask добавление пустой Xmlns = «»

<target name="xmlrewrite" > 
    <!--Driver--> 
    <taskdef name="xmltask" classname="com.oopsconsultancy.xmltask.ant.XmlTask"/> 
    <xmltask source="standalone.xml" dest="standalone.xml" report="true"> 
     <copy path="//driver[@module='com.oracle.ojdbc6']/text()" property="modelexists"/> 
     <insert 
      path="*[local-name()='server']/*[local-name()='profile']/*[local-name()='subsystem'][3]/*[local-name()='datasources']/*[local-name()='drivers']" 
      unless="modelexists"> 
      <![CDATA[ 
       <driver name="oracle" module="com.oracle.ojdbc6"> 
       <driver-class>oracle.jdbc.driver.OracleDriver</driver-class> 
       </driver> 
      ]]> 
     </insert> 
    </xmltask> 
</target> 

Согласно моему пониманию, запись должна быть сделана в standalone.xml, только если он еще не присутствует, так как я использую unless="modelexists".

Но, по-видимому, он делает новую запись для драйвера оракула с дополнительным xmlns="", что делает две записи оракула, и это приводит к сбою моей сборки.

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

+0

вы можете редактировать обновления вопрос с ним с полной задачей, выше, вы, казалось, положить в пи ECES. Также покажите входной файл xml, над которым вы работаете. – Rao

ответ

0

Я предполагаю, что файл standalone.xml связан с JBoss. Элементы XML в JBoss standalone.xml находятся в пространствах имен XML. Таким образом, <copy> элемент вложен в <xmltask> должны быть пространством имен известно:

<copy path="//*[local-name()='driver' and @module='com.oracle.ojdbc6']/text()" property="modelexists"/> 
1

Чтобы решить эту проблему с новой записью для водителя оракула с дополнительным xmlns="" вы должны предоставить пространство имен (находится в корневом элементе в XML) для узла driver в секции CDATA:

<driver xmlns="namespace_for_this_xml" name="oracle" module="com.oracle.ojdbc6"> 
    <driver-class>oracle.jdbc.driver.OracleDriver</driver-class> 
</driver> 

Source

 Смежные вопросы

  • Нет связанных вопросов^_^