XML学习
来源:互联网 发布:mac连不上手机热点 编辑:程序博客网 时间:2024/05/29 02:04
XML指可扩展标记语言,为了传输数据,而不是显示数据。
注意只有当保存xml文件的编码与浏览器解析xml文件的编码相同时,xml才会被浏览器成功解析。
通常记事本保存文件的格式是gb2312,而浏览器默认解析xml格式为utf-8,而xml头部encoding是在设置浏览器的解析格式,若将记事本另存为utf-8,则可以改变原来xml格式。
你若使用myeclipse或其他开发工具,则不必担心此问题,无论设置字符编码为什么,浏览器都可以解析,因为开发工具会解决其余问题。
字符编码 gbk 20000个汉字 gb2312 5000个汉字,可以相互通用,但他们都不能与utf-8相互通用。
xml分为如下几个部分
xml文档声明:(必须置为第一行)
<?xml version="1.0" encoding="gb2312" ?>
元素:
一个合格的 xml 必须有仅只有一个根元素。
元素的命名规则与Java类似,不过不可以以xml或Xml开头,xml中不会忽视主题内容中的空格和换行,下面中后者比前者节约流量。
<中国><北京><海淀/></北京></中国><中国><北京><海淀/></北京></中国>
属性命名规则和元素一样,属性一定要用引号包起来,单引号,双引号都可以。
属性一定要写在开始标签。或者用子标签的形式来表示。
<Persons><person name="java"></person></Persons>
注释<!-- -->不能嵌套
CDATA区内的内容不会被解析,只会保留原来的样式。 <![CDATA[ ]]>
<![CDATA[<last><<<<<<<</last>]]>
特殊字符
& & < < > > " " ' '
XML约束
格式良好的xml表示遵循xml语法,而遵循xml约束文档的xml表示有效的xml
xml约束可以约束 xml的元素,个数,顺序。
常见的约束
XML DTD , XML SCHEMA
引入外部DTD文档
1.当引入的DTD文档在本地时,采用如下方式
<!DOCTYPE 根元素 SYSTEM "book.dtd">
如<!DOCTYPE 书架 SYSTEM "book.dtd">
2.当引入的DTD文档在公共网络上,采用如下方式:
<!DOCTYPE 根元素 PUBLIC "DTD名称" "DTD文档URL">
比如struts的dtd
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
DTD部分:
DTD定义元素
语法:<!ELEMENT 元素名称 使用规则>
<!ENTITY copyright "java"> 其中copyright 表示实体名称, java表示实体内容。
在xml中引用©right; 表示Java
<?xml version="1.0" encoding="UTF-8"?><!ELEMENT AddressBook (Address+) ><!ELEMENT Address (Name,Street,City,State,Country,Pin) ><!ELEMENT Name (#PCDATA) ><!ELEMENT Street (#PCDATA) ><!ELEMENT City (#PCDATA) ><!ELEMENT State (#PCDATA) ><!ELEMENT Country (#PCDATA) ><!ELEMENT Pin (#PCDATA) ><!ATTLIST Name solutation (Mr.| Miss. | Mrs.) #REQUIRED><!ATTLIST Address id CDATA #REQUIRED><!ATTLIST Address isLocal (true| false) #IMPLIED><!ENTITY Country_name "China">
XML Schema部分
他比xml dtd要强大些,也更复杂些,支持namespace,它比dtd支持更多的数据类型,并支持用户自定义类型。
这是标准的xml格式,但他的扩展名为xsd。
xml schema不能像dtd一样定义实体,比DTD更复杂,但它是w3c的组织标准,正逐步替代DTD。
1.xml的约束技术 作用是 规范xml文件的书写 (标签 属性 文本)
2.android用到的约束技术是schema
<?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns="http://www.Addresses.com" targetNamespace="http://www.Addresses.com"> <xsd:element name="AddressBook"> <xsd:complexType> <xsd:sequence> <xsd:element name="Address" maxOccurs="unbounded"> <xsd:complexType> <xsd:complexContent> <xsd:extension base="AddressType"> <xsd:attribute name="id" type="xsd:integer" use="required"/> <xsd:attribute name="isLocal"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="true"/> <xsd:enumeration value="false"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:extension> </xsd:complexContent> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:complexType name="AddressType"> <xsd:sequence> <xsd:element name="Name"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="solutation"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="Mr."/> <xsd:enumeration value="Miss."/> <xsd:enumeration value="Mrs."/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> <xsd:element name="Street" type="xsd:string"/> <xsd:element name="City" type="xsd:string"/> <xsd:element name="State" type="xsd:string"/> <xsd:element name="Country" type="xsd:string"/> <xsd:element name="Pin" type="xsd:string"/> </xsd:sequence> </xsd:complexType></xsd:schema>
对应的xml:
<?xml version="1.0" encoding="UTF-8"?><AddressBook xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.Addresses.com AddressBook.xsd" xmlns="http://www.Addresses.com"> <Address isLocal="true" id="1"> <Name solutation="Mr.">Sam</Name> <Street>QuanKouRd.</Street> <City>ShangHai</City> <State>US</State> <Country>China</Country> <Pin>111</Pin> </Address> <Address isLocal="false" id="2"> <Name solutation="Mrs.">Ram</Name> <Street>JiaHangRd.</Street> <City>ShangHai</City> <State>US</State> <Country>India</Country> <Pin>222</Pin> </Address></AddressBook>
- XML学习
- XML学习
- XML学习
- XML学习
- XML学习
- XML学习
- xml学习
- 学习xml
- xml 学习
- XML学习
- XML 学习
- 学习XML
- XML学习
- xml学习
- xml学习
- XML学习
- XML学习
- XML学习
- vue.js分享记录
- 关于Adaboost的一些理解
- LEETCODE--First Unique Character in a String
- javascipt字符串函数
- 1029. Median (25)
- XML学习
- 纸牌游戏-小猫钓鱼(队列和栈的基本应用)
- jquery笔记:css
- 编写程序输入一个n*n的矩阵,求出两条对角线元素值之和
- 1059. C语言竞赛(20)
- vue2.0-组件-文档理解笔记v1.0
- React学习札记
- 蓝桥杯 基础练习02 Java实现
- 一个字节中被置为1的位的个数