<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="n1schema"
targetNamespace="http://tempuri.org/n1schema.xsd"
elementFormDefault="qualified"
xmlns="http://tempuri.org/n1schema.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:complexType name="Address">
<xs:sequence>
<xs:element name="Country" type="xs:string"></xs:element>
<xs:element name="Province" type="xs:string"></xs:element>
<xs:element name="City" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>
我知道xmlns="http://tempuri.org/n1schema.xsd" 是命名空间意思,targetNamespace又是什么?作用是什么?找了很多资料感觉作用也是和xmlns一样啊。 xmlns:xs="http://www.w3.org/2001/XMLSchema 这个表示什么呢,网上说法不一,我理解就是定义命名空间的前缀,但是内容应该和xmlns是一样的啊,为什么这3个属性有时候会不一样啊?
谢谢
2 个解决方案
#1
XML 文件通常是需要进行验证的。一种验证方式是 DTD, 另一验证方式就是 Schema.
Schema 本身也是一个 XML 。你这里的 XML 应该是一个 Schema 。
在一个 XML 文件中,每个元素都可以有自己的 namespace 。如果你不需要对 XML 中的某个元素进行 Schema 验证,那么该元素的 namespace 你可以任意指定(但通常以 URL 的形式给出)。但如果你需要对一个元素进行 Schema 验证那么该元素的 namespace 你是不能随意写的。此时该 namespace 要与验证该元素的 Schema 中
的 targetNamespace 指定的值完全相同。否则验证时应该提示错误。
LZ 的这个 XML 应该就是一个 Schema 。如果一个 XML 中的某个元素要使用该 Schema 进行验证。那么该元素的 namespace 要与 LZ 这个 Schema 中的 namespace 一致。
Schema 本身也是一个 XML 。你这里的 XML 应该是一个 Schema 。
在一个 XML 文件中,每个元素都可以有自己的 namespace 。如果你不需要对 XML 中的某个元素进行 Schema 验证,那么该元素的 namespace 你可以任意指定(但通常以 URL 的形式给出)。但如果你需要对一个元素进行 Schema 验证那么该元素的 namespace 你是不能随意写的。此时该 namespace 要与验证该元素的 Schema 中
的 targetNamespace 指定的值完全相同。否则验证时应该提示错误。
LZ 的这个 XML 应该就是一个 Schema 。如果一个 XML 中的某个元素要使用该 Schema 进行验证。那么该元素的 namespace 要与 LZ 这个 Schema 中的 namespace 一致。
#2
这里笔误了。
#1
XML 文件通常是需要进行验证的。一种验证方式是 DTD, 另一验证方式就是 Schema.
Schema 本身也是一个 XML 。你这里的 XML 应该是一个 Schema 。
在一个 XML 文件中,每个元素都可以有自己的 namespace 。如果你不需要对 XML 中的某个元素进行 Schema 验证,那么该元素的 namespace 你可以任意指定(但通常以 URL 的形式给出)。但如果你需要对一个元素进行 Schema 验证那么该元素的 namespace 你是不能随意写的。此时该 namespace 要与验证该元素的 Schema 中
的 targetNamespace 指定的值完全相同。否则验证时应该提示错误。
LZ 的这个 XML 应该就是一个 Schema 。如果一个 XML 中的某个元素要使用该 Schema 进行验证。那么该元素的 namespace 要与 LZ 这个 Schema 中的 namespace 一致。
Schema 本身也是一个 XML 。你这里的 XML 应该是一个 Schema 。
在一个 XML 文件中,每个元素都可以有自己的 namespace 。如果你不需要对 XML 中的某个元素进行 Schema 验证,那么该元素的 namespace 你可以任意指定(但通常以 URL 的形式给出)。但如果你需要对一个元素进行 Schema 验证那么该元素的 namespace 你是不能随意写的。此时该 namespace 要与验证该元素的 Schema 中
的 targetNamespace 指定的值完全相同。否则验证时应该提示错误。
LZ 的这个 XML 应该就是一个 Schema 。如果一个 XML 中的某个元素要使用该 Schema 进行验证。那么该元素的 namespace 要与 LZ 这个 Schema 中的 namespace 一致。
#2
这里笔误了。