XML
2016-05-29 12:12
253 查看
什么是XML(Extensible Markup Language)
可扩展标记语言。目前推荐遵循W3C组织发布的XML1.0规范。
技术原由:在现实生活中大量存在关系的数据。
这样的数据如何交给计算机处理:
XML常见应用:
XML技术除用于保存有关系 的数据之外,它还经常用作软件配置文件,以描述程序模块之间的关系。
在一个软件系统中,为提高系统的灵活性,它所启动的模块通常由其配置文件决定 。
例如:软件启动时,要启动A,B两个模块,而A,B在启动时又分别要启动A1,A2,B1,B2这两个模块。
为了准备描述这种关系,此时使用XML文件最适合不过。
一个XML文件分为如下几个部分内容:
1.文档声明:
2.元素
3.属性
4.注释
5.CDATA区,特殊字符
6.处理指令(processing instruction)
1.文档声明:在编写XML文档时,需要先使用文档声明:
1.最简单的文档声明语句:<? xml version="1.0"?>
2.设置文档的编码格式:encoding="utf-8"
注意这里的乱码原由:记事本保存默认是GB2323的模式。如果xml指定的是UTF-8那么就会有编码冲突。
eclipse有自动识别保存文件格式。
3.设置文档是否独立:standalone="no"//IE不关注这个属性。
2.元素:
1.XML文件中出现的标签,一个标签分为开始标签和一个结束标签。
一个标签有几种如下书写格式。
包含标签体:<a>www.baidu.com</a>
不包含标签体:<a></a>
2.一个标签也可以嵌套若干子标签,但不能交叉标签。
3.格式良好的XML文档必须有且仅有一个根标签,其它标签都是这个根标签的子孙标签。
4.对于XML标签中出现的所有空格和换行,XML解析程序会当作标签内容处理。
5.命名规范1.区分大小写,不能数字开头_开头不能XML开头不能有空格中间不能有:号。
3.属性:
1.一个标签可以有多个属性,每个属性都有它自己的名称取值。<input name = "text">
2.属性值一定要用双引号或单引号(’)引起来。
3.定义属性必须遵循与标签相同的命名规范。
4.XML技术中,标签属性所代表的信息,也可以被改成子元素的形式来描述,例如:
<input>
<name>tom</name>
</input>
4.注释:
XML文件的注释采用:<!---注释--->格式
注意: 1.XML声明之前不能有注释 2.注释不嵌套。
5.CDATA区:
1.在编写XML文件时,有些内容可能不想让解析引擎解析执行,而是当作原始数据内容处理。
2.遇到这种情况,可以把这些内容放在CDATA区里。
语法: <![CDATA[内容]]>
示例: <![CDATA[
<A>
<B></B>
</A>
]]>
6.处理指令:
处理指令,简称PI(processing instruction).处理指令用来指挥解析引擎如何解析XML文档内容。
例如,在XML文档中可以使用XML-stylesheet指令,通知解析引擎应用css文件显示XML文档。
<?xml-stylesheet type="text/css" href="1.css" ?>
处理指令必须以<?作为开头,以“?>”作为结尾,XML声明语句就是最常见的一种处理指令。
7.XML约束:
在XML技术里,可以编写一个文档来约束一个XML文档的书写规范,这称之为XML约束。
为什么需要XML约束
常用的约束技术: XML DTD/XML schema
IE5以上浏览器内置了XML解析工具:Microsort.XMLDOM开发人员可以编写javascritp代码,利用这个解析工具装载XML文件,并对XML文件进行dtd验证。
常用方法是用eclipse检验dtd是否正确。
8.DTD语法:
1.DTD的引用:1.本地的引用:<!DOCTYPE 文档根节点 SYSTEM "dtd文件的URL">
2.公共的文件时:<!DOCTYPE 文档根节点 PUBLIC "dtd名称" "dtd的URL">
2.元素定义:1.格式如下<!ELEMENT 元素名称 元素类型>
2.元素类型可以是元素内容或类型
如<!ELEMENT 书架 (书名,作者,售价)>
<!ELEMENT 书名(#PCDATA)>
3.如为元素类型,则直接书写DTD规范定义了如下几种类型:
EMPTY:用于定义空元素。<br/><hr/>
ANY:表示元素内容为任意类型。
4.用逗号分隔,表示内容的出现顺序必须与声明时一致。
5.用|分隔,表示任选其一,即多个只能出现一个
5.+:一次多多次 ?:0次或一次 *:0次或多次。
6.也可以使用圆括号()批量设置
例:<!ELEMENT MYFILE((TITLE*,AUTHOR?,EMAIL)*|COMMENT)>
3.属性定义:1.xml文档中的标签属性通过ATTLIST为其设置属性
2.语法格式:
<!ATTLIST 元素名 属性名 属性值类型 设置说明>
例:<!ATTLIST 商品 类别 CDATA #REQUIRED
着色 CDATA #IMPLIED(可选的)>
作者 CDATA #FIXED(固定) "给定值">
3.常用属性类型:CDATA (字符串) ENUMERATED
ID(必须以字母开头) ENTITY(实体:相当于变量)
ENTITY:1.引用实体:引用实体主要是在XML文档中应用
例:<!ENTITY 实体名称 “实体内容” >:直接转变成实体内容。
2.引用方法:&实体名称;
例:<!ENTITY copyright "I AM A PROGRAMMER">
©right;
3.参数实体:DTD文件自身使用:
语法格式:<!ENTITY % 实体名称 “实体内容”>
引用方式:%实体名称
4.XML编程:XML解析技术概述: dom和sax
1.dom:(W3C)组织提供的一个方式。
2.sax(simple API for XML)不是官方标准,但它是XML社区事实上的标准,基本所有的XML解析器都支持它。
XML解析开发包。Jaxp(sun) Jdom dom4j
两者比较:1.dom解析的优点是对文档crud比较方便,缺点是占内存比较大。
2.sax解析的优点是占用内存少,解析速度快,缺点是不适合做文档的crud.
虚拟机内存大小的调整: argument里用Xmx80m
JAXP:JAXP开发包是j2se的一部分,它由javax.xml.org.w3c.dom/org.xml.sax包和子包组成。
在javax.xml.parsers包中,定义了几个工厂类,程序员调用这些工厂类,可以得到XML文档的DOM或SAX解析器。
从而实现对xml文档的解析。
javax.xml.parsers包中 DocumentBuilderFactory用于创建DOM模式的解析器对象,DocumentBuilderFacory是一个抽象工厂类,它不能直接实例化
但类的一个newInstance方法,可以根据本地平台默认安装解析器,自动创建一个工厂的对象并返回。
public void test() throws Exception{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document d = db.parse("src/book.xml");
NodeList list = d.getElementsByTagName("书名");
Node node = list.ite 3ff7 m(0);
String str = node.getTextContent();
Element el = (Element) d.getElementsByTagName("书名").item(0);
String arr = el.getAttribute("name");
System.out.println(str + arr);
}
javax.xml.transfrom包中的Transformer类用于把找表XML文件的Document对象转的成某种格式后进行输出,例如把XML文件应用样转成HTML文档。
利用这个对象,当然也可以把Document对象又重新写到一个XML文件中。
Transformer类通过transform方法完成转的操作,该方法接收一个源和一个目的地。我们可以通过:
1.javax.xml.transform.dom.DOMSource类来关联要转的document对象。
2.javax.xml.transform.stream.StreamResult对象来表示数据的目的地。
Transform对象通过TransformerFactory获得。
示例:
TransformerFactory tf = TransformerFactory.newInstance();
Transformer tfr = tf.newTransformer();
tfr.transform(new DOMSource(d),new StreamResult(new FileOutputStream("src/book.xml")));
SAX采用事件处理的方式解析XML文件,利用SAX解析XML文档,文档分两个部分内容:
解析器和事件处理器:
1.解析器可以使用JAXP的API创建,创建出SAX解析器事,就可以指定解析器去解析某个XML文档。
2.解析器采用SAX方式 在解析某个XML文档时,它只要解析到XML文档的一个组成 部分,都会去调味用事件处理器的一个方法,
解析器在调用事件处理器的方法时,会把当前解析到的XML文件内容作为方法的参数传递给处理器。
3.事件处理器由程序员编写,程序员通过事件处理器中的方法参数,就可以很轻松地得到SAX
解析到的数据,从而可以决定如果处理数据。
流程:SAXParser--->SAXParser-->SAXRreader(Hander)
常用方法: startElement/endElement/charactors.
示例:
public class DomeSax {
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
//获取工厂
SAXParserFactory sf = SAXParserFactory.newInstance();
//获取解析器
SAXParser sp = sf.newSAXParser();
//获取读取器
XMLReader reader = sp.getXMLReader();
//设置内容处理器
reader.setContentHandler(new ListHandler());
//读取XML文档
reader.parse("src/book.xml");
}
}
class ListHandler extends DefaultHandler{
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
System.out.println("<" + qName + ">");
for(int i=0;i<attributes.getLength() && attributes!=null;i++){
String name = attributes.getQName(i);
String value = attributes.getValue(i);
System.out.println("name " + name + "value" + value);
}
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
System.out.println(new String(ch,start,length));
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
System.out.println("</" + qName +">");
}
}
DOM4J解析XML文档:(非常好的API文档查档)
1.Dome4j是一个简单、灵活的开源代码的库。DOM4J是由JDOM开发的人分离出来后独立开发的。
和JDOM不同的是,DOM4J使用接口和抽象类,虽然比JDOM更复杂一点,也它更灵活。
2.DOM4J是一个非常优秀的JAVA XML API ,具有性能优异,功能强大和极易使用的特点。现在很多软件都采用。
3.使用DOM4J,要下载相应的jar文件。
示例:
@Test
public void test() throws DocumentException{
SAXReader reader = new SAXReader();
Document document = reader.read("src/book.xml");
Element root = document.getRootElement();
Element book = (Element) root.elements("??").get(0);
String bookname = book.element("????").getText();
String bookattr = book.element("????").attributeValue("name");
System.out.println(bookname);
System.out.println(bookattr);
}
@Test
public void test2() throws DocumentException, IOException {
SAXReader reader = new SAXReader();
Document document = reader.read("src/book.xml");
Element root = document.getRootElement();
Element book = root.element("书");
book.addElement("出版日期").addAttribute("time", "1929-2-10");
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("utf-8");
XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"),format);
writer.write(document);
writer.close();
}
@Test
public void test3() throws DocumentException, IOException {
SAXReader reader = new SAXReader();
Document document = reader.read("src/book.xml");
Element time = document.getRootElement().element("书").element("出版日期");
time.getParent().remove(time);
XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"));
writer.write(document);
writer.close();
}
@Test
public void test4() throws DocumentException, IOException {
SAXReader reader = new SAXReader();
Document document = reader.read("src/book.xml");
Element time = document.getRootElement().element("书");
Element price = DocumentHelper.createElement("售价");
price.setText("203");
time.add(price);
XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"));
writer.write(document);
writer.close();
}
乱码问题分析:FileWriter是一个字符流所以传输时会不查码表,用平台默认码表,这时。我们可以用FileOutputStream
再加上一个格式化输出器。就可以控制码表的输出的格式。
解决办法:很简单把工程设置编码格式再把XML编码格式设置统一。
XPATH:用来定位节点。非常实用。API非常好。查档。注意这里要有支持的jar。
XML Schema:
XML Schema也是一种定义和描述XML文档与内容的模式语言,其出现是为了克服DTD的局限性。
XML vs DTD:
1.xml Schema符合XML语法结构拓展名.xsd:
2.DOM,SAX等XML API很容易解析出XML Schema文档中的内容。
3.XML Schema对名称空间支持很好。
3.Schema比DTD支持更多的数据类型,并支持用户自定义的数据类型。
4.Schema不能像DTD一样定义实体,比DTD更复杂,它是W3C的标准,正取代DTD。
5.一个XML Schema文档通常称之为模式文档,遵循这个文档书写的叫实例文档。
6.Schema 必须有一个根节点。这个根节点名称为Schema。
7.Schema约束文档编写完后。通常要把这个文件中声明的元素绑定到一个uri地址上,
专业术语叫绑定到名称空间上。以后实例文档就可以从uri上来告诉引擎,实例文档
中的xml元素来自哪里让谁约束。
具体语法内容参考:xsd文档。
可扩展标记语言。目前推荐遵循W3C组织发布的XML1.0规范。
技术原由:在现实生活中大量存在关系的数据。
这样的数据如何交给计算机处理:
XML常见应用:
XML技术除用于保存有关系 的数据之外,它还经常用作软件配置文件,以描述程序模块之间的关系。
在一个软件系统中,为提高系统的灵活性,它所启动的模块通常由其配置文件决定 。
例如:软件启动时,要启动A,B两个模块,而A,B在启动时又分别要启动A1,A2,B1,B2这两个模块。
为了准备描述这种关系,此时使用XML文件最适合不过。
一个XML文件分为如下几个部分内容:
1.文档声明:
2.元素
3.属性
4.注释
5.CDATA区,特殊字符
6.处理指令(processing instruction)
1.文档声明:在编写XML文档时,需要先使用文档声明:
1.最简单的文档声明语句:<? xml version="1.0"?>
2.设置文档的编码格式:encoding="utf-8"
注意这里的乱码原由:记事本保存默认是GB2323的模式。如果xml指定的是UTF-8那么就会有编码冲突。
eclipse有自动识别保存文件格式。
3.设置文档是否独立:standalone="no"//IE不关注这个属性。
2.元素:
1.XML文件中出现的标签,一个标签分为开始标签和一个结束标签。
一个标签有几种如下书写格式。
包含标签体:<a>www.baidu.com</a>
不包含标签体:<a></a>
2.一个标签也可以嵌套若干子标签,但不能交叉标签。
3.格式良好的XML文档必须有且仅有一个根标签,其它标签都是这个根标签的子孙标签。
4.对于XML标签中出现的所有空格和换行,XML解析程序会当作标签内容处理。
5.命名规范1.区分大小写,不能数字开头_开头不能XML开头不能有空格中间不能有:号。
3.属性:
1.一个标签可以有多个属性,每个属性都有它自己的名称取值。<input name = "text">
2.属性值一定要用双引号或单引号(’)引起来。
3.定义属性必须遵循与标签相同的命名规范。
4.XML技术中,标签属性所代表的信息,也可以被改成子元素的形式来描述,例如:
<input>
<name>tom</name>
</input>
4.注释:
XML文件的注释采用:<!---注释--->格式
注意: 1.XML声明之前不能有注释 2.注释不嵌套。
5.CDATA区:
1.在编写XML文件时,有些内容可能不想让解析引擎解析执行,而是当作原始数据内容处理。
2.遇到这种情况,可以把这些内容放在CDATA区里。
语法: <![CDATA[内容]]>
示例: <![CDATA[
<A>
<B></B>
</A>
]]>
6.处理指令:
处理指令,简称PI(processing instruction).处理指令用来指挥解析引擎如何解析XML文档内容。
例如,在XML文档中可以使用XML-stylesheet指令,通知解析引擎应用css文件显示XML文档。
<?xml-stylesheet type="text/css" href="1.css" ?>
处理指令必须以<?作为开头,以“?>”作为结尾,XML声明语句就是最常见的一种处理指令。
7.XML约束:
在XML技术里,可以编写一个文档来约束一个XML文档的书写规范,这称之为XML约束。
为什么需要XML约束
常用的约束技术: XML DTD/XML schema
IE5以上浏览器内置了XML解析工具:Microsort.XMLDOM开发人员可以编写javascritp代码,利用这个解析工具装载XML文件,并对XML文件进行dtd验证。
常用方法是用eclipse检验dtd是否正确。
8.DTD语法:
1.DTD的引用:1.本地的引用:<!DOCTYPE 文档根节点 SYSTEM "dtd文件的URL">
2.公共的文件时:<!DOCTYPE 文档根节点 PUBLIC "dtd名称" "dtd的URL">
2.元素定义:1.格式如下<!ELEMENT 元素名称 元素类型>
2.元素类型可以是元素内容或类型
如<!ELEMENT 书架 (书名,作者,售价)>
<!ELEMENT 书名(#PCDATA)>
3.如为元素类型,则直接书写DTD规范定义了如下几种类型:
EMPTY:用于定义空元素。<br/><hr/>
ANY:表示元素内容为任意类型。
4.用逗号分隔,表示内容的出现顺序必须与声明时一致。
5.用|分隔,表示任选其一,即多个只能出现一个
5.+:一次多多次 ?:0次或一次 *:0次或多次。
6.也可以使用圆括号()批量设置
例:<!ELEMENT MYFILE((TITLE*,AUTHOR?,EMAIL)*|COMMENT)>
3.属性定义:1.xml文档中的标签属性通过ATTLIST为其设置属性
2.语法格式:
<!ATTLIST 元素名 属性名 属性值类型 设置说明>
例:<!ATTLIST 商品 类别 CDATA #REQUIRED
着色 CDATA #IMPLIED(可选的)>
作者 CDATA #FIXED(固定) "给定值">
3.常用属性类型:CDATA (字符串) ENUMERATED
ID(必须以字母开头) ENTITY(实体:相当于变量)
ENTITY:1.引用实体:引用实体主要是在XML文档中应用
例:<!ENTITY 实体名称 “实体内容” >:直接转变成实体内容。
2.引用方法:&实体名称;
例:<!ENTITY copyright "I AM A PROGRAMMER">
©right;
3.参数实体:DTD文件自身使用:
语法格式:<!ENTITY % 实体名称 “实体内容”>
引用方式:%实体名称
4.XML编程:XML解析技术概述: dom和sax
1.dom:(W3C)组织提供的一个方式。
2.sax(simple API for XML)不是官方标准,但它是XML社区事实上的标准,基本所有的XML解析器都支持它。
XML解析开发包。Jaxp(sun) Jdom dom4j
两者比较:1.dom解析的优点是对文档crud比较方便,缺点是占内存比较大。
2.sax解析的优点是占用内存少,解析速度快,缺点是不适合做文档的crud.
虚拟机内存大小的调整: argument里用Xmx80m
JAXP:JAXP开发包是j2se的一部分,它由javax.xml.org.w3c.dom/org.xml.sax包和子包组成。
在javax.xml.parsers包中,定义了几个工厂类,程序员调用这些工厂类,可以得到XML文档的DOM或SAX解析器。
从而实现对xml文档的解析。
javax.xml.parsers包中 DocumentBuilderFactory用于创建DOM模式的解析器对象,DocumentBuilderFacory是一个抽象工厂类,它不能直接实例化
但类的一个newInstance方法,可以根据本地平台默认安装解析器,自动创建一个工厂的对象并返回。
public void test() throws Exception{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document d = db.parse("src/book.xml");
NodeList list = d.getElementsByTagName("书名");
Node node = list.ite 3ff7 m(0);
String str = node.getTextContent();
Element el = (Element) d.getElementsByTagName("书名").item(0);
String arr = el.getAttribute("name");
System.out.println(str + arr);
}
javax.xml.transfrom包中的Transformer类用于把找表XML文件的Document对象转的成某种格式后进行输出,例如把XML文件应用样转成HTML文档。
利用这个对象,当然也可以把Document对象又重新写到一个XML文件中。
Transformer类通过transform方法完成转的操作,该方法接收一个源和一个目的地。我们可以通过:
1.javax.xml.transform.dom.DOMSource类来关联要转的document对象。
2.javax.xml.transform.stream.StreamResult对象来表示数据的目的地。
Transform对象通过TransformerFactory获得。
示例:
TransformerFactory tf = TransformerFactory.newInstance();
Transformer tfr = tf.newTransformer();
tfr.transform(new DOMSource(d),new StreamResult(new FileOutputStream("src/book.xml")));
SAX采用事件处理的方式解析XML文件,利用SAX解析XML文档,文档分两个部分内容:
解析器和事件处理器:
1.解析器可以使用JAXP的API创建,创建出SAX解析器事,就可以指定解析器去解析某个XML文档。
2.解析器采用SAX方式 在解析某个XML文档时,它只要解析到XML文档的一个组成 部分,都会去调味用事件处理器的一个方法,
解析器在调用事件处理器的方法时,会把当前解析到的XML文件内容作为方法的参数传递给处理器。
3.事件处理器由程序员编写,程序员通过事件处理器中的方法参数,就可以很轻松地得到SAX
解析到的数据,从而可以决定如果处理数据。
流程:SAXParser--->SAXParser-->SAXRreader(Hander)
常用方法: startElement/endElement/charactors.
示例:
public class DomeSax {
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
//获取工厂
SAXParserFactory sf = SAXParserFactory.newInstance();
//获取解析器
SAXParser sp = sf.newSAXParser();
//获取读取器
XMLReader reader = sp.getXMLReader();
//设置内容处理器
reader.setContentHandler(new ListHandler());
//读取XML文档
reader.parse("src/book.xml");
}
}
class ListHandler extends DefaultHandler{
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
System.out.println("<" + qName + ">");
for(int i=0;i<attributes.getLength() && attributes!=null;i++){
String name = attributes.getQName(i);
String value = attributes.getValue(i);
System.out.println("name " + name + "value" + value);
}
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
System.out.println(new String(ch,start,length));
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
System.out.println("</" + qName +">");
}
}
DOM4J解析XML文档:(非常好的API文档查档)
1.Dome4j是一个简单、灵活的开源代码的库。DOM4J是由JDOM开发的人分离出来后独立开发的。
和JDOM不同的是,DOM4J使用接口和抽象类,虽然比JDOM更复杂一点,也它更灵活。
2.DOM4J是一个非常优秀的JAVA XML API ,具有性能优异,功能强大和极易使用的特点。现在很多软件都采用。
3.使用DOM4J,要下载相应的jar文件。
示例:
@Test
public void test() throws DocumentException{
SAXReader reader = new SAXReader();
Document document = reader.read("src/book.xml");
Element root = document.getRootElement();
Element book = (Element) root.elements("??").get(0);
String bookname = book.element("????").getText();
String bookattr = book.element("????").attributeValue("name");
System.out.println(bookname);
System.out.println(bookattr);
}
@Test
public void test2() throws DocumentException, IOException {
SAXReader reader = new SAXReader();
Document document = reader.read("src/book.xml");
Element root = document.getRootElement();
Element book = root.element("书");
book.addElement("出版日期").addAttribute("time", "1929-2-10");
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("utf-8");
XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"),format);
writer.write(document);
writer.close();
}
@Test
public void test3() throws DocumentException, IOException {
SAXReader reader = new SAXReader();
Document document = reader.read("src/book.xml");
Element time = document.getRootElement().element("书").element("出版日期");
time.getParent().remove(time);
XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"));
writer.write(document);
writer.close();
}
@Test
public void test4() throws DocumentException, IOException {
SAXReader reader = new SAXReader();
Document document = reader.read("src/book.xml");
Element time = document.getRootElement().element("书");
Element price = DocumentHelper.createElement("售价");
price.setText("203");
time.add(price);
XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"));
writer.write(document);
writer.close();
}
乱码问题分析:FileWriter是一个字符流所以传输时会不查码表,用平台默认码表,这时。我们可以用FileOutputStream
再加上一个格式化输出器。就可以控制码表的输出的格式。
解决办法:很简单把工程设置编码格式再把XML编码格式设置统一。
XPATH:用来定位节点。非常实用。API非常好。查档。注意这里要有支持的jar。
XML Schema:
XML Schema也是一种定义和描述XML文档与内容的模式语言,其出现是为了克服DTD的局限性。
XML vs DTD:
1.xml Schema符合XML语法结构拓展名.xsd:
2.DOM,SAX等XML API很容易解析出XML Schema文档中的内容。
3.XML Schema对名称空间支持很好。
3.Schema比DTD支持更多的数据类型,并支持用户自定义的数据类型。
4.Schema不能像DTD一样定义实体,比DTD更复杂,它是W3C的标准,正取代DTD。
5.一个XML Schema文档通常称之为模式文档,遵循这个文档书写的叫实例文档。
6.Schema 必须有一个根节点。这个根节点名称为Schema。
7.Schema约束文档编写完后。通常要把这个文件中声明的元素绑定到一个uri地址上,
专业术语叫绑定到名称空间上。以后实例文档就可以从uri上来告诉引擎,实例文档
中的xml元素来自哪里让谁约束。
具体语法内容参考:xsd文档。
相关文章推荐
- XML文档的简单读写
- xmlblaster 编译C++例子
- python 读取xml的方法
- DMProcessConfigXML 使用实例
- 布局xml中的属性设置如何在代码中实现
- Android动画详解(xml ¥ Java)
- web.xml中配置<error-page>标签不起作用的问题
- xml学习笔记(6)使用Dom4j对xml文档进行dom解析
- Android安装包APK文件的XML解码
- java 对象转 json 和 xml
- 使用XmlDocument 编辑配置文件修改数据库链接
- XMLHttpRequest HTTP请求的返回码为0 http status = 0
- Python解析xml中dom元素的方法
- iOS UI13_数据解析XML_,JSON
- 【HTML/XML 5】使用XSL给XML文档添加样式
- 使用dom4j技术对xml文档进行增删改练习(一)
- JAXP:(Java API for XML Processing)DOM方式解析XML文件
- tomcat maven plugin 取不到 web.xml 中的env-entry的值
- c++ builder 中的 XMLDocument 类详解(6) - 访问节点属性
- XMLHttpRquest对象