gpt4 book ai didi

xml - 当已经在父级别上提供时,我们是否需要为子标签提供 xml 前缀

转载 作者:行者123 更新时间:2023-12-04 18:04:28 25 4
gpt4 key购买 nike

这是其中一个示例中提供的默认 Camel 上下文。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:camel="http://camel.apache.org/schema/spring"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">

<camel:camelContext xmlns="http://camel.apache.org/schema/spring" id="sampleCamelContext">
<camel:route>
<camel:from uri="file:src/data?noop=true"/>
<camel:choice>
<camel:when>
<camel:xpath>/person/city = 'London'</camel:xpath>
<camel:log message="UK message"/>
<camel:to uri="file:target/messages/uk"/>
</camel:when>
<camel:otherwise>
<camel:log message="Other message"/>
<camel:to uri="file:target/messages/others"/>
</camel:otherwise>
</camel:choice>
</camel:route>
</camel:camelContext>
</beans>

既然提供了默认的 camel:camelContext ns,我们是否还需要在子标签中指定前缀?

这行不通吗? (如 https://stackoverflow.com/a/25789100/1873328 中提到的)

<camel:camelContext xmlns="http://camel.apache.org/schema/spring" id="sampleCamelContext">    
<route>
<from uri="file:src/data?noop=true"/>
<choice>
<when>
<xpath>/person/city = 'London'</camel:xpath>
<log message="UK message"/>
<to uri="file:target/messages/uk"/>
</when>
</choice>
</route>
</camel:camelContext>

也许,我没有正确理解 xml 命名空间。任何关于命名空间如何作为奖励工作的详细解释将不胜感激。

最佳答案

以下两个事实给你答案:

  • 子节点使用xmlns来自最近的父节点的声明。
  • 前缀字面值(例如 camel )并不重要——唯一重要的是它引用的命名空间。如果不同的前缀引用同一个命名空间,它们可以互换使用,没有前缀也是前缀(空前缀)。

因为你的xmlns关于camel:camelContext的声明引用与 xmlns:camel 相同的命名空间声明,省略camel:也没关系对于这些子节点与否,在这两种情况下,它们都将针对 http://camel.apache.org/schema/spring 列出命名空间。

关于xml - 当已经在父级别上提供时,我们是否需要为子标签提供 xml 前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29395575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com