这个XSD导入命名空间用于什么?

这个XSD导入命名空间用于什么?,xsd,xml-namespaces,Xsd,Xml Namespaces,我有一个以以下内容开头的xsd文档: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>

我有一个以以下内容开头的xsd文档:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:import namespace="http://www.w3.org/XML/1998/namespace"     schemaLocation="http://www.w3.org/2001/xml.xsd"/>
    <xs:complexType name="T_segment">
        <xs:sequence>
            <xs:element ref="element" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute ref="xml:space" use="required"/>
        <xs:attribute ref="id" use="required"/>
    </xs:complexType>
...

...
当我试图在像BizTalk这样的映射应用程序中使用这个xsd时,它会抱怨名称空间。因此,我删除了xs:import名称空间标记,它会抱怨xs:attribute ref=“xml:space”标记。所以,我去掉了它,它似乎工作正常(至少不会爆炸)

我的问题是,这些标签是做什么用的?通过移除它们,我是否破坏了xsd

据我所知,名称空间是为了避免冲突。但是在xsd中,所有内容都以xs作为前缀,模式本身有xmlns:xs=”http://www.w3.org/2001/XMLSchema". 我不确定导入的目的。

元素将XML名称空间导入到模式中。导入的命名空间包含“space”属性的定义。
位通过引用导入的模式定义“T_段”复杂类型所需的“space”属性(即,不必重写定义)。“空间”属性本质上使您能够定义是否


现在,根据应用程序的不同,您实际上可能正在破坏一些东西,因为实际上您正在从复杂类型中删除一个约束,该约束可能与使用此模式描述的文档的应用程序相关。在不了解更多应用程序的情况下,很难说这对您的情况是否有意义。

您看过W3C文档中的导入标签了吗?()是的,我确实读过文档,但无法理解它们的意思,因为它涉及到许多我无法理解的其他细节。我想我只需要一个人说“这意味着……把它拿出来意味着……”太好了。我现在明白了。谢谢你解释得很清楚。