标签: xml-namespaces

XML中的"xmlns"是什么意思?

我在XML文件中看到以下行:

xmlns:android="http://schemas.android.com/apk/res/android"
Run Code Online (Sandbox Code Playgroud)

xmlns在许多其他XML文件中也看到了我遇到过的问题.

它是什么?

xml xml-namespaces

400
推荐指数
4
解决办法
26万
查看次数

什么是'app'Android XML命名空间?

这是app我从res/menu/main.xml文件中看到的命名空间的示例

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity" >
<item android:id="@+id/action_settings"
    android:title="@string/action_settings"
    android:orderInCategory="100"
    app:showAsAction="never" />
</menu>
Run Code Online (Sandbox Code Playgroud)

app命名空间的用途是什么?它是"标准"Android XML命名空间吗?是否有相同的值选项可用于放置在两个不同命名空间中的相同属性(例如app:showAsActionandroid:showAsAction).

来自文档: android:showAsAction=["ifRoom" | "never" | "withText" | "always" | "collapseActionView"]

即,如果属性是相反的,上面示例中的行是否意味着其他内容:

android:showAsAction="never"
Run Code Online (Sandbox Code Playgroud)

它几乎看起来可能是某种"子类化"机制,但我似乎无法app从Google/Android源代码中找到关于命名空间的任何真实文档.

xml android xml-namespaces android-layout android-tools-namespace

159
推荐指数
1
解决办法
7万
查看次数

通过'ElementTree'在Python中解析带有命名空间的XML

我有以下XML,我想用Python解析ElementTree:

<rdf:RDF xml:base="http://dbpedia.org/ontology/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns="http://dbpedia.org/ontology/">

    <owl:Class rdf:about="http://dbpedia.org/ontology/BasketballLeague">
        <rdfs:label xml:lang="en">basketball league</rdfs:label>
        <rdfs:comment xml:lang="en">
          a group of sports teams that compete against each other
          in Basketball
        </rdfs:comment>
    </owl:Class>

</rdf:RDF>
Run Code Online (Sandbox Code Playgroud)

我想找到所有owl:Class标签,然后提取其中所有rdfs:label实例的值.我使用以下代码:

tree = ET.parse("filename")
root = tree.getroot()
root.findall('owl:Class')
Run Code Online (Sandbox Code Playgroud)

由于命名空间,我收到以下错误.

SyntaxError: prefix 'owl' not found in prefix map
Run Code Online (Sandbox Code Playgroud)

我尝试在http://effbot.org/zone/element-namespaces.htm上阅读该文档,但由于上述XML具有多个嵌套命名空间,因此我仍然无法正常工作.

请告诉我如何更改代码以查找所有owl:Class标签.

python xml elementtree xml-namespaces xml-parsing

148
推荐指数
5
解决办法
12万
查看次数

137
推荐指数
6
解决办法
18万
查看次数

Open Graph命名空间声明:带有XMLNS或头部前缀的HTML?

我已经看到有关如何最好地实现Open Graph命名空间的相互矛盾的信息.具体来说,Open Graph网站使用了一些不同的方法,而Facebook Open Graph示例则使用其他方法.

Open Graph网站示例(使用HTML前缀属性):

<html prefix="og: http://ogp.me/ns#">
Run Code Online (Sandbox Code Playgroud)

Open Graph网站源代码(使用HTML XMLNS属性):

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#">
Run Code Online (Sandbox Code Playgroud)

Facebook Open Graph文档(使用HEAD前缀属性):

<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb#">
Run Code Online (Sandbox Code Playgroud)

Facebook Open Graph文档#2(使用HTML XMLNS属性):

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" 
      xmlns:fb="https://www.facebook.com/2008/fbml">
Run Code Online (Sandbox Code Playgroud)

什么是推荐的方法或甚至不重要?

facebook xml-namespaces opengraph

127
推荐指数
3
解决办法
5万
查看次数

如何防止.NET的XmlDocument输出中的空白xmlns属性?

从.NET中的XmlDocument生成XML时,xmlns第一次插入没有关联命名空间的元素时会出现空白属性.怎么能防止这种情况?

例:

XmlDocument xml = new XmlDocument();
xml.AppendChild(xml.CreateElement("root",
    "whatever:name-space-1.0"));
xml.DocumentElement.AppendChild(xml.CreateElement("loner"));
Console.WriteLine(xml.OuterXml);
Run Code Online (Sandbox Code Playgroud)

输出:

<root xmlns="whatever:name-space-1.0"><loner xmlns="" /></root>
Run Code Online (Sandbox Code Playgroud)

期望的输出:

<root xmlns="whatever:name-space-1.0"><loner /></root>
Run Code Online (Sandbox Code Playgroud)

是否有适用于XmlDocument代码的解决方案,而不是将文档转换为字符串后出现的问题OuterXml

我这样做的原因是看看我是否可以使用XmlDocument生成的XML匹配特定协议的标准XML.空白xmlns属性可能不会破坏或混淆解析器,但它在我已经看到的此协议的任何用法中也不存在.

.net c# xml xmldocument xml-namespaces

115
推荐指数
4
解决办法
7万
查看次数

如何在不获取xmlns ="..."的情况下将对象序列化为XML?

有没有办法让我在.NET中序列化一个对象,而XML Namespaces也不会自动序列化?似乎默认情况下.NET认为应该包含XSI和XSD名称空间,但我不希望它们存在.

.net xml-serialization xml-namespaces

102
推荐指数
5
解决办法
10万
查看次数

如何使用XPath忽略名称空间

我的目标是使用XPath从具有多个名称空间的多个xml文件中提取某些节点.只要我知道名称空间URI,一切正常.命名空间名称本身保持不变,但模式(XSD)有时是客户端生成的,即我不知道.然后我基本上有三种选择:

  1. 只使用一个模式用于命名空间,希望没有出错(我能确定吗?)

  2. 获取文档的子节点并查找带有命名空间URI的第一个节点,希望它在那里并只使用URI,希望它是正确的.可能由于多种原因而出错

  3. 不知何故告诉xpath:"看,我不关心命名空间,只需找到具有此名称的所有节点,我甚至可以告诉您命名空间的名称,而不是URI".这就是问题......

这不是许多"我的xpath表达不起作用的重复,因为我不知道命名空间感知" 这里这里发现的问题.我知道如何使用命名空间感知.只是没有如何摆脱它.

xml xpath namespaces xml-namespaces

96
推荐指数
3
解决办法
8万
查看次数

什么是xs:NCName类型以及何时应该使用它?

我通过模式生成器运行了一个xml文件,生成的所有内容都是预期的,除了一个节点:

<xs:element name="office" type="xs:NCName"/>
Run Code Online (Sandbox Code Playgroud)

到底是xs:NCName什么?为什么人们会使用它xs:string呢?

xml xsd xml-namespaces

95
推荐指数
4
解决办法
7万
查看次数

破解我的xpath的Xml命名空间!

我有以下XML:

<List xmlns="http://schemas.microsoft.com/sharepoint/soap/">
 <Fields>
   <Field>
   </Field>
 </Fields>
</List>
Run Code Online (Sandbox Code Playgroud)

这是从SharePoint Web服务返回的XML的精简版本.我也有以下xPath:

/List/Fields/Field
Run Code Online (Sandbox Code Playgroud)

当我xmlns从我的XML中删除xPath工作正常.当它在那里时我的xPath什么都没找到.我的xPath应该做些什么?修改XML不是一种选择.

xml xpath xml-namespaces

84
推荐指数
3
解决办法
7万
查看次数