WebService系列博客{七}[Schema简单案例阐述、DTD的简单阐述]

来源:互联网 发布:西南大学网络教育论坛 编辑:程序博客网 时间:2024/04/27 14:27

要学好webservice我个人觉得了解一下xml是很必要的。如果前几篇博客的wsdl文件很模糊的话,看这一章也是很必要的。

1.        Schema相比dtd的优点

Schema出现的目的是通过一种更合理的方式来编辑xml(基于xml的语法方式)

Schema可以使用命名空间支持多个名称相同的元素

Schema可以很好的完成对java或者其他语言对象的修饰

2.简单Schema的编写

下面Schema可是说是最简单的一个Schema的代码了,其中注释很清楚,着重了“头文件、复杂类型、简单类型”的引用

<?xml version="1.0" encoding="UTF-8"?><!-- xmlns为schema的命名空间不可更改。但是可以更改前缀 --><!-- targetNamespace为自身的namespace,当xml引入约束的时候用到 --><!-- xmlns:tns   为方便自己类型在自己schema文档中引用而定义 --><schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/person/04"xmlns:tns="http://www.example.org/person/04" elementFormDefault="qualified"><!-- 元素定义引用下面本文档定义的personType复杂类型 --><element name="person" type="tns:personType"></element><!-- 定义一个复杂类型供person引用,也就是相当于一个javabean --><complexType name="personType"><sequence><element name="name" type="string"></element><element name="age" type="tns:ageType"></element></sequence><attribute name="id" type="string"></attribute></complexType><!-- 定义一个简单类型 --><simpleType name="ageType"><!-- 约束规则。base不要忘记。 --><restriction base="int"><minInclusive value="1"></minInclusive><maxExclusive value="100"></maxExclusive></restriction></simpleType><!-- 简单类型和复杂类型的约束很重要 --></schema>

3、约束的xml举例:

<?xml version="1.0" encoding="UTF-8"?><person xmlns="http://www.example.org/person/04"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://www.example.org/person/04" id="12">  <name>zhanglei</name><age>100</age></person>


4、图解xml和schema代码再次说明:


5、xml引入命名空间约束说明:


6、DTD的简单案例:

<?xml version="1.0" encoding="UTF-8"?><!--以下分别为声明元素和属性的案例--><!ELEMENT classrom (name,grade,student)><!ATTLIST classrom id ID #REQUIRED><!ELEMENT name (#PCDATA)><!ELEMENT grade (#PCDATA)><!ELEMENT student (age)><!ATTLIST student id ID #REQUIRED><!ELEMENT age (#PCDATA)>



<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE classrom SYSTEM "test_classrom.dtd"><classrom id="p2"><name>116</name><grade>2</grade><student id="p1"><age>12</age></student></classrom>



原创粉丝点击