XML默认命名空间问题

时间:2009-04-16 09:20:22

标签: xml schema namespaces

假设我有以下XML模式文件和以下XML文档文件。我有两个问题,

  1. 由于XML Schema文件中没有指定目标名称空间,因此Information元素将使用哪个命名空间?

  2. 在XML文档文件中,使用“信息”时,它属于哪个命名空间?请注意,在这种情况下,我没有从XML文档文件中引用XML Schema文件。

  3. XML架构文件:

    <?xml version="1.0" encoding="utf-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    elementFormDefault="qualified">
    <xs:element name="Information" type="xs:string"/>
    </xs:schema>
    

    XML文档文件:

    <?xml version="1.0" encoding="utf-8"?>
    <Information>Hello XML</Information>
    
    提前谢谢, 乔治

2 个答案:

答案 0 :(得分:9)

Information元素不在命名空间中。要将它放在默认命名空间中,您必须在标记中指定该命名空间。

<Information xmlns="http://www.mydefaultnamespace.com">

来自Oracle article

  

没有命名空间

     

范围内没有默认命名空间时,不存在命名空间。 {default namespace}是使用xmlns显式声明的名称空间。如果{default namespace}尚未使用xmlns声明,则表示元素位于{default&gt; namespace}中是不正确的。在这种情况下,我们说元素在{no namespace}中。 {no namespace}&gt;也适用于已声明的{default namespace}未声明的情况。

这是一个非常全面的命名空间资源:

XML Namespaces FAQ

答案 1 :(得分:1)

为什么要为没有目标定义架构?这没有意义。