DTDファイルおよびXMLスキーマ制約の制約

XMLファイルContact.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--  <!DOCTYPE contact SYSTEM "Contact.dtd">-->
<!-- <!DOCTYPE contact SYSTEM "dtd文件的路径"> 
<!DOCTYPE 文档根结点 SYSTEM "DTD文件的URL">
引入公共的DTD:
<!DOCTYPE 文档根结点 PUBLIC "DTD名称" "DTD文件的URL">
文档根结点 指的是当前xml中的根标签。
PUBLIC  表示当前引入的DTD是公共的DTD
-->
<contact xmlns="www.520xlh.com"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="www.520xlh.com Contact.xsd  ">   
	<linkman id="i1">
		<name>张三</name>
		<email>123@163.qq</email>
		<address>陕西省西安市</address>
		<school>西北大学</school>
	</linkman>
	<linkman id="i2">
		<name>李四</name>
		<email>110@163.qq</email>
		<address>陕西西安市</address>
		<school>西安电子科技大学</school>
	</linkman>
</contact>

使用法:

<!--  <!DOCTYPE contact SYSTEM "Contact.dtd">-->
<!-- <!DOCTYPE contact SYSTEM "dtd文件的路径"> 
<!DOCTYPE 文档根结点 SYSTEM "DTD文件的URL">
引入公共的DTD:
<!DOCTYPE 文档根结点 PUBLIC "DTD名称" "DTD文件的URL">
文档根结点 指的是当前xml中的根标签。
PUBLIC  表示当前引入的DTD是公共的DTD
-->

制約XMLのDTDファイルContact.dtd

<!--新建一个后缀叫dtd的xml文件,写入一下内容-->
<!-- 标签名称 (规范) -->
<!ELEMENT contacts (linkman*)>
<!-- 有序标签 -->
<!ELEMENT linkman (name,email,address,school)>
<!-- 标签名称(需要解析的字符数据) -->
<!ELEMENT name (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT address (#PCDATA)>
<!ELEMENT school (#PCDATA)>
<!-- 标签名 属性名称 属性类型 默认值  -->
<!--
    ID  表示唯一
    #REQUIRED 表示必填
-->
<!ATTLIST linkman id ID #REQUIRED>

<!--在需要受约束的文件中加入
<!DOCTYPE contacts SYSTEM "dtd的路径">-->

制約XMLスキーマファイルContact.xsd

:DTDよりも制約の仕様、およびxmlファイルは、ように、複数のスキーマ制約を持っている、とすることができます。

注意事項:

  1.このスキーマ文書自体のスキーマファイルを定義し、それはまた、他の制約を受けている、xmlです。そして、この制約は、事前W3C組織で定義され、
スキーマファイルは、ルートタグに事前に来るように使用される属性に導入する必要があります
。<スキーマのxmlnsは=「http://www.w3.org/2001/XMLSchemaが導入された」W3Cが定義され書かれた仕様スキーマ
のtargetNamespaceは「= http://www.itcast.org/book」現在のスキーマファイル名(名前空間)に
XMLスキーマは、この時間制約を導入する際にある役割、バックは現在のtargetNamespaceで記述する必要があります導入URIアドレス。

  2.xml XSDを導入する方法:
<要素のxmlns =「http://www.itcast.org/book」それはのスキーマのtargetNamespace属性ファイル次のような値である
のxsi:schemaLocationの= " http://www.itcast.org/ブックは、「これは現在のスキーマファイル紹介する実際のパスですbook.xsd
:XSI =のxmlns」をhttp://www.w3.org/2001/XMLSchema-instance「>現在のXMLスキーマは、インスタンス文書で説明しました

  3.schema名前空間:
スキーマファイルの定義、ルートタグを使用する必要があり
、現在のスキーマ定義名で定義されたtargetNamespace属性を(だけで、名前を割り当てる任意のファイルを指していなかった)、最初に従ったxmlファイルに拘束されていますその後、現在使用中のスキーマファイル名の導入、。
XSI:= "のschemaLocation"とは、特定のスキーマファイルを導入しました。(スキーマのtargetNamespace属性は、名前を定義するが、名前だけなので、スキーマファイルのschemaLocationに続く指定された特定の場所を宣言するために必要なXMLファイルため)
名を使用する最初、それはスキーマを導入する際のschemaLocation使用:XSI(スペースは、スペース、ファイル名)
の名前空間主な機能をするために使用される
のelementFormDefault =「資格|資格のない」
スキーマで修飾された書き込みは、あなたがXMLタグ名の限定された定義で定義された名前空間を使用する必要があります。
非修飾は、名前空間を使用することはできません名前空間と子要素を使用しなければならないルート要素が必要です。

<?xml version="1.0" encoding="UTF-8"?>
<!-- 
新建一个后缀叫xsd的xml文件,写入一下内容
    xmlns 当前XML的名称空间 随便写唯一
    xmlns:xs 当前XML中标签来自哪
    targetNamespace 目标文档的名称空间
 -->
<xs:schema xmlns="www.520xlh.com" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="www.520xlh.com" 
    elementFormDefault="qualified">
    <!-- 元素的名称 -->
    <xs:element name="contact">
        <!-- 元素类型复杂类型 -->
        <xs:complexType>
            <!-- 有循序的 -->
            <xs:sequence>
                <!-- 
                    minOccurs 最少出现次数
                    unbounded 没有限制
                -->
                <xs:element name="linkman" minOccurs="0" maxOccurs="unbounded" >
                    <xs:complexType> 
                        <xs:sequence>
                            <!-- type 表示元素的类型 -->
                                <xs:element name="name" type="xs:string"/>
                                <xs:element name="email" type="xs:string"/>
                                <xs:element name="address" type="xs:string"/>
                                <xs:element name="school" type="xs:string"/>
                        </xs:sequence>
                        <!-- user元素上的属性 -->
                        <xs:attribute name="id" type="xs:ID" use="required"/>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>


<!-- 用法:
    xmlns -> 当前文档的名称空间
    xmlns:xsi -> 当前文档是schema约束的一个实例
    xsi:schemaLocation -> 当前实例支持的约束文件的位置
 -->
<!--<contacts xmlns="www.520it.com"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="www.520it.com xsd的路径">-->

おすすめ

転載: blog.csdn.net/qq_42405666/article/details/90082795