XML默认名称空间问题

XML默认名称空间问题,xml,schema,namespaces,Xml,Schema,Namespaces,假设我有下面的XML模式文件和下面的XML文档文件。我有两个问题 因为在XML模式文件中并没有指定目标名称空间,所以信息元素将位于哪个命名空间中 在XML文档文件中,当使用信息时,它属于哪个名称空间?请注意,在本例中,我没有从XML文档文件中引用XML模式文件 XML架构文件: <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" element

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

  • 因为在XML模式文件中并没有指定目标名称空间,所以信息元素将位于哪个命名空间中

  • 在XML文档文件中,当使用信息时,它属于哪个名称空间?请注意,在本例中,我没有从XML文档文件中引用XML模式文件

  • 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>
    
    
    Hello XML
    
    提前感谢,,
    George

    信息元素将不在名称空间中。要将其放入默认名称空间,必须在标记中指定该名称空间

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

    无名称空间

    当作用域中没有默认命名空间时,不存在命名空间。{default namespace}是使用xmlns显式声明的名称空间。当一个{default namespace}根本没有使用xmlns>声明时,说元素在{default>namespace}中是不正确的。在这种情况下,我们说元素在{no namespace}中。{no namespace}>在已声明的{default namespace}未声明时也适用

    下面是一个相当全面的命名空间资源:


    为什么要为无目标定义模式?它没有意义。

    @dommer,我认为在我的例子中,XML模式文件中的信息元素没有在名称空间中定义。另一个问题是,我们如何在XML文档文件中引用这样的元素(不使用名称空间)?我不确定您是否可以显式地引用它。你指的是什么?没有名称空间。我认为您必须指定一个默认名称空间才能显式引用任何内容,但我准备证明我是错的。@null,我对如何在XML架构中定义默认名称空间和在XML文档文件中定义默认名称空间非常感兴趣。你能给我们看一个简单的样品吗?@dommer你能帮我回答这个问题吗:?它说的是java,但我认为它适用于任何xml文件。@leppie,1。您的意思是,若在模式文件中并没有定义目标名称空间,那个么就并没有办法在XML文档中引用这样定义的scehma元素吗?2.若我们不在XML模式文件中指定目标名称空间,那个么将在哪个名称空间中定义元素——在默认名称空间中还是在无名称空间中?Hi George:)1。对2.没什么,只是冗长的括号里没有意义的文字。这取决于您用来读取XML的内容。XML与模式无关。但是,您可以在给定的XML验证读取器中预定义默认模式,这将避免您必须定义默认名称空间。从词汇意义上讲,不给出名称空间几乎就像C#中的匿名类。回答很酷,leppie!我感兴趣的是--“但是,您可以在给定的XML验证读取器中预定义默认模式,这将避免您必须定义默认名称空间。”,您的意思是有一种方法可以在验证读取器中定义默认模式,而不是在XML文档本身中使用xmlns?如果有,请给我看一个样品好吗?2.“不提供名称空间几乎就像C#中的匿名类”——您是指不指定XML架构文件的目标名称空间(continue),还是指不在XML文档中定义名称空间?