什么是XML?
XML 指可扩展标记语言(EXtensible Markup Language)。
XML 是一种很像HTML的标记语言。
XML 的设计宗旨是传输数据,而不是显示数据。
XML 标签没有被预定义。您需要自行定义标签。
XML 被设计为具有自我描述性。
XML 是 W3C 的推荐标准。
常用的约束技术:XML DTD 和XML Schema
将DTD与XML文档关联的三种形式
DTD约束既可以作为一个单独的文件编写,也可以在XML文件内编写。
使用内部DTD 。<!DOCTYPE 根节点 [DTD的代码]>
使用外部DTD。<!DOCTYPE 根节点 "DTD的地址">
使用网络DTD。<!DOCTYPE 根节点 PUBLIC "DTD的名称" "DTD的地址">
xml和HTML的区别?
-
1.xml标记全是自定义的
-
2.xml的语法严格
-
3.xml是存储数据的 HTML是 展示数据的
dtd
实例:
创建 dtd文件
gz.dtd
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT gz (author+)>
<!ELEMENT author (sa,sb)>
<!ELEMENT sa (#PCDATA)>
<!ELEMENT sb (#PCDATA)>
//定义author 元素 它有name属性, name属性唯一,必填
<!ATTLIST author name ID #REQUIRED>
ELEMENT 声明一个元素
#PCDATA (表明这里是用来写文本的)
ATTLIST 定义元素的属性 ID 唯一值 #REQUIRED 必填项 CDATA 可以重复
创建xml文件
gz.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE gz SYSTEM "gz.dtd">
<gz>
<author name="tgt">
<sa>a.jsp</sa>
<sb>s.jsp</sb>
</author>
</gz>
!DOCTYPE 声明
gz (命名 要跟dtd中根节点名相同,不然可能出错)
读取xml文件
1.导入dom4j 架包 dom4j\dom4j-1.6.1.jar
Test.java
package xml;
import java.io.File;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class Test {
@SuppressWarnings("unchecked")
public static void main(String[] args) {
SAXReader sax=new SAXReader();//读取
try {
Document doc=sax.read(new File("src/gz.xml"));//读取文档
Element root=doc.getRootElement();//跟节点
System.out.println("根节点是:"+root.getName());
List<Element> els= root.elements();//根节点中的子节点
for(Element el:els) {
System.out.println("根节点中的子节点 shi:"+el.getName());
System.out.println("根节点中的子节点的内容:"+el.getText());
List<Element> zjds=el.elements();
for(Element zjd:zjds) {
System.out.println("子节点中的子节点 shi:"+zjd.getName());
System.out.println("子节点中的子节点的内容:"+zjd.getText());
}
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
schema
创建schema文件
schema.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/schema"
xmlns:tns="http://www.example.org/schema"
elementFormDefault="qualified">
<xs:element name="user">
<xs:complexType>
<xs:sequence>
<xs:element name="id" type="xs:int"/>
<xs:element name="username" type="xs:string"/>
<xs:element name="time" type="xs:date"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
创建xml
schema.xml
<?xml version="1.0" encoding="UTF-8"?>
<user xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/schema"
xmlns:tns="http://www.example.org/schema schema.xml">
<id>1</id>
<username>zs</username>
<time>2021-01-02</time>
</user>