使用没有url或uri的命名空间。我很困惑

时间:2016-04-09 16:11:52

标签: xml xsd xml-namespaces

我是使用XML的新手,我学习了第一个概念。我对名称空间的使用感到困惑。我准备了两个简单的文件:一个xml-schema和XML文档。请帮助理解错误,如果我已经做了,并尝试解释如何在我的PC上而不是在网站上使用模式文件。我问这个是因为我发现的所有示例都使用了像命名空间或位置file.xml这样的URL。 谢谢。

P.S。对不起我的英语不好
这是cdSchema.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
targetNamespace="CD"
xmlns="CD">
<xs:element name="artist" type="xs:string"/>
<xs:element name="length" type="xs:string"/>
<xs:element name="title" type="xs:string"/>
<xs:element name="year" type="xs:string"/>
<xs:element name="song">
    <xs:complexType>
        <xs:sequence>
            <xs:element ref="artist"/>
            <xs:element ref="length"/>
            <xs:element ref="title"/>
            <xs:element ref="year"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>
</xs:schema>

这是compactDisc.xml

<?xml version="1.0" encoding="UTF-8"?>
<CD xmlns="CD"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="CD cdSchema.xsd">

    <song>
        <artist>Santana</artist>
        <title>African Song</title>
        <length>4:42</length>
        <year>1993</year>
    </song>
    <song>
        <artist>Santana</artist>
        <title>Corazon Espinado</title>
        <length>4:36</length>
        <year>1996</year>
    </song>

</CD>

感谢所有人

1 个答案:

答案 0 :(得分:3)

XML规范强烈建议使用URI作为命名空间名称,在您拥有的域中使用URI是一种很好的做法,例如http://www.my-domain.com/ns/CD(替换您的CD })。这样可以高度确信您的命名空间是唯一的。您实际上不必在此地址拥有Web服务器。人们使用&#34; http&#34;真的有点不幸。对于命名空间的方案,最好使用namespace://www.my-domain.com/CD来明确我们不要谈论使用HTTP可访问的资源;但由于某种原因,使用&#34; http:&#34;已经流行起来。