首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ant xmltask添加空xmlns="“

Ant xmltask添加空xmlns="“
EN

Stack Overflow用户
提问于 2016-06-21 21:59:08
回答 2查看 736关注 0票数 3

下面是我正在运行的完整的ant目标,它将驱动程序插入到我的wildfly standalone.xml中:

代码语言:javascript
复制
<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>

据我所知,由于我使用的是unless="modelexists",因此只有当它还不存在时,才应该在standalone.xml中输入。

但是很明显,它使用额外的xmlns=""为oracle driver创建了一个新条目,该条目创建了两个oracle条目,这会导致我的构建失败。

如果您需要更多信息,请让我知道。

EN

回答 2

Stack Overflow用户

发布于 2016-10-28 20:54:00

要解决带有附加xmlns=""的oracle驱动程序的新条目的问题,您必须在CDATA部分中提供节点driver的名称空间(在xml中的根元素处):

代码语言:javascript
复制
<driver xmlns="namespace_for_this_xml" name="oracle" module="com.oracle.ojdbc6">
    <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
</driver>

Source

票数 2
EN

Stack Overflow用户

发布于 2016-06-23 01:28:17

我猜standalone.xml文件和JBoss有关。JBoss standalone.xml中的XML元素位于XML名称空间中。因此,嵌套在<xmltask>下的<copy>元素需要是名称空间感知的:

代码语言:javascript
复制
<copy path="//*[local-name()='driver' and @module='com.oracle.ojdbc6']/text()" property="modelexists"/>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37946554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档