gpt4 book ai didi

java - 嵌套元素中的默认命名空间

转载 作者:太空宇宙 更新时间:2023-11-04 06:41:16 25 4
gpt4 key购买 nike

我只是对默认命名空间感到好奇。我有以下 xml:

<root xmlns="myNamespace">
<someElement xmlns="anotherNamespace">
<data>Info</data>
</someElement>
<anotherElement>
<moreData>Info2</moreData>
</anotherElement>
</root>

我的猜测是myNamespace继承 <root><anotherElement> 。和anotherNamespace<someElement> 中的默认命名空间所以在这个元素中及其子元素会覆盖另一个 myNamespace

我知道我可以重写上面的 xml 代码,如下所示:

<my:root xmlns:my="myNamespace">
<a:someElement xmlns:a="anotherNamespace">
<a:data>Info</a:data>
</a:someElement>
<my:anotherElement>
<my:moreData>Info2</my:moreData>
</my:anotherElement>
</my:root>

我认为两者都是完全有效的,但是我在java中的一些xml bean实现上遇到了一些问题,它不接受第一个,所以我很好奇是否有一个xml规范指定第一种方法是否正确。

最佳答案

第一种方法是有效的。在 xml-names specification6.2 命名空间默认部分中,它解释了:

The scope of a default namespace declaration extends from the beginning of the start-tag in which it appears to the end of the corresponding end-tag, excluding the scope of any inner default namespace declarations.

还包括这个例子:

<!-- initially, the default namespace is "books" -->
<book xmlns='urn:loc.gov:books'
xmlns:isbn='urn:ISBN:0-395-36341-6'>
<title>Cheaper by the Dozen</title>
<isbn:number>1568491379</isbn:number>
<notes>
<!-- make HTML the default namespace for some commentary -->
<p xmlns='http://www.w3.org/1999/xhtml'>
This is a <i>funny</i> book!
</p>
</notes>
</book>

关于java - 嵌套元素中的默认命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24648197/

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