加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

XML-DTD

发布时间:2020-12-16 00:15:36 所属栏目:百科 来源:网络整理
导读:XML:extension markup language 可扩展性标记语言。 DTD:document type definition 文档类型定义 http://www.w3school.com.cn/dtd/dtd_intro.asp XSD:Xml Schema Definition XML Schema定义 XML Schema 比 DTD 更强大。 XML Schema 支持数据类型 XML Sche

XML:extension markup language 可扩展性标记语言。

DTD:document type definition 文档类型定义 http://www.w3school.com.cn/dtd/dtd_intro.asp

XSD:Xml Schema Definition XML Schema定义


XML Schema 比 DTD 更强大。

XML Schema 支持数据类型

XML Schema 最重要的能力之一就是对数据类型的支持。

通过对数据类型的支持:

  • 可更容易地描述允许的文档内容
  • 可更容易地验证数据的正确性
  • 可更容易地与来自数据库的数据一并工作
  • 可更容易地定义数据约束(data facets)
  • 可更容易地定义数据模型(或称数据格式)
  • 可更容易地在不同的数据类型间转换数据


需求如下:定义如下格式的dtd

<class id="">
 
    <claName>
    </claName>

    <students>
        <student>
	     <id>
	     </id>

	     <stuName>
             </stuName>
	</student>

	<student>
             <id>
	     </id>

	     <stuName>
             </stuName>
	</student>
    </students>

</class>

方法一:dtd包含在xml文件中(不建议,合理的做法是新建一个文件来定义dtd)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE class[
<!ELEMENT claName (#PCDATA)>
<!ATTLIST class id ID #REQUIRED>
<!ATTLIST class test CDATA #IMPLIED>
<!ELEMENT students (student+)>
<!ELEMENT student (id,stuName)>
<!ELEMENT id (#PCDATA)>
<!ELEMENT stuName (#PCDATA)>
]>

<class id="cl1">
     <claName>cla1</claName>
     <students>
         <student>
             <id>stu1</id>
             <stuName>stuName1</stuName>
         </student>
         
          <student>
             <id>stu2</id>
             <stuName>stuName2</stuName>
         </student>
     </students>
</class>

方法二:单独的文件定义dtd

(1)定义class.dtd文件

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT class (claName,students)>
<!--
元素名称 元素类型
PS:原型类型为#PCDATA时,必须加 () ,其它类型如EMPTY、ANY则没有()
-->
 
<!ELEMENT claName (#PCDATA)>
 
</pre><pre name="code" class="html"><!--<span style="font-family: Arial,Helvetica,sans-serif;">注意下面的#REQUIRED,此字段表示默认值类型</span>
默认值参数可使用下列值:
值  : 属性的默认值
#REQUIRED :属性值是必需的
#IMPLIED  :属性不是必需的
#FIXED value : <span style="font-family: Arial,sans-serif;">属性值是固定的</span>
<span style="font-family: Arial,sans-serif;">--></span>
<!ATTLIST class id ID #REQUIRED>
<!ATTLIST class test CDATA #IMPLIED>
<!--注意下面的student后的 +,这是控制元素出现的次数:默认出现1次-->
<!-- <span style="font-family: Arial,sans-serif;">默认出现1次</span>
<span style="font-family: Arial,sans-serif; background-color: rgb(204,204);">? 表示:出现0次或1次</span>
 
* 表示:出现0次或多次
+ 表示:出现1次或多次
PS:似曾相识的赶脚有没有,bingo,熟悉【正则表达式】的朋友不会陌生
-->
<!ELEMENT students (student+)>
<!ELEMENT student (id,stuName)>
<!ELEMENT id (#PCDATA)>
<!ELEMENT stuName (#PCDATA)>

(2)在class_dtd_excluded.xml文件中引入class.dtd
<?xml version="1.0" encoding="UTF-8"?>
<!--注意这里的SYSTEM,引用自己定义的dtd文件为SYSTEM,如果是通过url引用网上的dtd,则应该替换成PUBLIC-->
<!DOCTYPE class SYSTEM "class.dtd">
<class id="cl1">
     <claName>cla1</claName>
     <students>
         <student>
             <id>stu1</id>
             <stuName>stuName1</stuName>
         </student>
         
          <student>
             <id>stu2</id>
             <stuName>stuName2</stuName>
         </student>
     </students>
</class>







XML Schema 比 DTD 更强大。

XML Schema 支持数据类型

XML Schema 最重要的能力之一就是对数据类型的支持。

通过对数据类型的支持:

  • 可更容易地描述允许的文档内容
  • 可更容易地验证数据的正确性
  • 可更容易地与来自数据库的数据一并工作
  • 可更容易地定义数据约束(data facets)
  • 可更容易地定义数据模型(或称数据格式)
  • 可更容易地在不同的数据类型间转换数据

编者注:数据约束,或称 facets,是 XML Schema 原型中的一个术语,中文可译为“面”,用来约束数据类型的容许值。

XML Schema 使用 XML 语法

另一个关于 XML Schema 的重要特性是,它们由 XML 编写。

由 XML 编写 XML Schema 有很多好处:

  • 不必学习新的语言
  • 可使用 XML 编辑器来编辑 Schema 文件
  • 可使用 XML 解析器来解析 Schema 文件
  • 可通过 XML DOM 来处理 Schema
  • 可通过 XSLT 来转换 Schema

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读