XML

1.什么是xml

可扩展标记语言(Extensible Markup Language),是一种很像HTML的标记语言,但是HTMl是用来显示语言,但是Xml是用来传输和存储数据的,是一种非常灵活地语言,没有固定的标签,需要自行的定义标签,他被设计为具有自我描述性,是W3C的推荐的标准

2.XML的格式

》声明信息

》必须有且只有一个根元素

》xml是大小写敏感的

》标签式成对的,而且是要正确的嵌套的

》属性值是要使用双引号的

》xml中的注释是和html中的一样的

<?xml version="1.0" encoding="UTF-8" ?>
<!-- 这里是注释 -->
<books>

<book id = "b01">
     <name>java高级编程</name>
    <author>MIKE</author>
     <price>50.5</price>
</book>

<book id = "b02">
     <name>C#高级编程</name>
    <author>KOKO</author>
     <price>20.3</price>
</book>

</books>

但是,值得注意的是,xml中的事可以随意书写的,只要满足了上面的要求,这也是xml的灵活性,但是,也要有所限制,

才能更好的存储和传输数据,DTD和XSD定义语义约束

》》所以一个有效地xml

1).首先必须是格式良好地

2).使用DTD或者是XSD(XML Schema)定义语义约束

2.DTD

》Document Type Definition ,文档类型定义

》用来约束xml的文档格式,保证他是一个有效地xml

》DTD分为两种,一种是外部DTD。另一种是内部DTD

内部DTD

<!DOCTYPE 根元素 [元素声明]>

  元素声明语法

<!ELEMENT 元素名 (子元素 [, 子元素...])>

数量词

》+ ? * 

+是出现一次或者是多次

?是出现0次或者是一次

*是出现任意次数

》》元素的属性

CDATA  : 表示字符数据

默认值: #REQUIRED 表示必须出现

#IMPLIED 表示不是必须出现的

<!ATTLIST 元素名 属性名称 属性类型 默认值>

<?xml version="1.0" encoding="UTF-8" ?>
<!-- 声明内部DTD -->
<!DOCTYPE books [

<!-- 声明元素 -->
<!ELEMENT books (book*)>
<!ELEMENT book (name,author,price)>

<!-- 声明属性 -->
<!ATTLIST book id CDATA #REQUIRED>
]>
<books>

<book id = "b01">
     <name>java高级编程</name>
    <author>MIKE</author>
     <price>50.5</price>
</book>

<book id = "b02">
     <name>C#高级编程</name>
    <author>KOKO</author>
     <price>20.3</price>
</book>

</books>

》》如果只允许在标签中指能出现文本,而不允许出现其他的标签,那么就要用到PCDATA

<!ELEMENT book (#PCDATA)> 这样在book标签之间就不允许出现标签了,而是只能出现文本了

外部DTD

a.创建一个独立的dtd文件

语法和规则和内部的dtd是一模一样的,但是不用写<!DOCTYPE>这个标签中,

其他都是一样的。

b.现在只需要引入这个外部dtd文件就可以了

<!DOCTYPE books SYSTEM "ddd.dtd">

即:<!DOCTYPE 根元素  SYSTEM “文件名">

>>而且值得注意的是,在dtd文件中,书写的格式也是非常关键的,特别是空格,有的时候,空格也是必须的

原文地址:https://www.cnblogs.com/qinzhihaovip/p/9862308.html