XML
Posted qinzhihaovip
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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文件中,书写的格式也是非常关键的,特别是空格,有的时候,空格也是必须的
以上是关于XML的主要内容,如果未能解决你的问题,请参考以下文章
从 XML 声明片段获取 XML 编码:部分内容解析不支持 XmlDeclaration