配置XML命名空间(Configuring an XML Namespace)

2019-10-16 19:53发布

我做了一个XML生成有一些不同的选择,一个是样式选项定义是否使用原始数据类型属性或元素。

XML模式不支持的权利,但我需要让XML命名空间的设置,我一直在做一些研究。 我的理解是XML命名空间可以有一个前缀,但它不就得了。 它还需要一个唯一的字符串属性值通常是一个URI,但并不一定如此。

我有点困惑,因为我是新来的XML命名空间,我有这个几个问题,如果我们看一看一个示例XML文档

<?xml version="1.0"?>
<root xmlns="some_identifier">
<oneKey>value</oneKey>
</root>

这是通过使用密钥值例子的元素风格,我打算让“some_identifier”的配置。 在这个例子中是XML命名空间下的“一键”元素? 还是我必须指定像一个前缀xmlns:ns然后前缀的“一键”与“NS”?

此外,如果我们看看属性风格:

<?xml version="1.0"?>
<root xmlns="some_identifier" oneKey="value" />

我们需要在这个例子中定义一键类似的前缀?

我很抱歉,如果我是没谱的方式对这些问题的,请让我知道如果我只是没了感觉,

更新:

我发现这个网站: http://www.rpbourret.com/xml/NamespacesFAQ.htm#exec_1

这表示,这两个是相同的:

<foo:A xmlns:foo="http://www.foo.org/">
     <foo:B>abcd</foo:B>
</foo:A>

<A xmlns="http://www.foo.org/">
     <B>abcd</B>
</A>

这是非常有用的,但是对于属性的风格。 我需要前缀属性? 或将XMLNS默认为这些工作呢?

Answer 1:

<root xmlns="some_identifier">

这个声明默认命名空间,根及其所有子将属于它,你不需要前缀。

<root xmlns="some_identifier" oneKey="value" />

默认命名空间不应用于属性。 如果你想一键属于一个命名空间,你必须创建一个前缀,并使用它的属性

<root xmlns="some_identifier" xmlns:myns="some_identifier" myns:oneKey="value"/>


文章来源: Configuring an XML Namespace