一、XML。

(1)XML:Extensible Markup Language

(2)XML是一种标记语言。

(3)XML的设计宗旨是传输数据,而不是显示数据。

(4)XML标签没有被预定义,即使用约束的XML文档设计具有自我描述性。

(5)XML是W3C的推荐标准。

(6)XML作用:存储、配置。

(7)约束:XML的内在要求。

(8)组成:文档声明、原属、属性、注释、CDATA区、特殊字符、处理指令。

文档声明举例:<?xml version="1.0" encoding="utf-8" standalone="yes"?>

二、编码与乱码。

1.编码分类。

(1)utf-8:万国码

(2)gb2312:国标码(简体)

(3)gbk:国标码(简体、繁体)

(4)gb8859-1:国标码(简体、繁体、少数民族)

(5)BIG5:大五码(繁体)

(6)iso-8859-1:西文编码

2.编码规则

(1)所有的编码都可以生成相应的字节码

(2)相同文字采用不同编码内容相同

(3)所有的编码都可以进行转换

3.乱码:文件内容编码和文件编码不同。

如:文件内容编码是utf-8,但是文件编码是gbk

解决方式:将两者统一起来即可。

三、空格与回车

  XML文件中出现的所有空格和回车,XML解析程序都会当做标签内容来处理,所以在编写XML文件时,使用换行和缩进等方式让源文件中的内容清晰可读的良好习惯可能要被迫改变。如<a>www.baidu.com</a>与

<a>

www.baidu.com

</a>

是不同的,前者的子元素只有一个,后者的子元素有三个。

空格必须使用英文空格,不允许使用中文空格。

四、其它规则

1、包含内容的标签必须成对出现,如<book>微机原理与接口技术</book>,不包含标签体的标签格式:<book></book>或者<book/>

2、XML标签区分大小写,不能以数字或者下划线开头,不能包含空格,名称中间不能有冒号

3.每个元素可以有多个属性,每个属性都可以有自己的值。<价格 单价=“人民币”>26</价格>

4、表达一个事情可以使用多种方式,可以使用均为标签的形式:<价格><单价>人民币<单价><数值>26</数值></价格>或者标签和属性搭配的方式:<价格 单价=“人民币”>26</单价>,属性值必须使用单引号或者双引号括起来。

5、XML注释使用<!---->

6、CDATA区:不需要使用转义字符就可以将符号显示出来。

用法:<![CDATA[内容]]>,作为标签内容使用。

五、处理指令(PI:Processing Instruction)。

1.处理指令必须以<?开头,以?>结尾,XML声明语句就是最常见的处理指令。

2.处理指令用来指挥解析引擎如何解析XML文档内容。

举例:在XML文档中可以使用xml-stylesheet指令,通知xml解析引擎,应用css文件显示xml文档内容。

<?xml-stylesheet type="text/css" href="1.css"?>

注:xml引入了样式表,则浏览器就会对xml文件进行和html相同动作的解析。


一、dtd。

1、dtd约束:使用XML知识,描述个人信息。

2、必要性:每个人都有自己的表达方式,这样需要多种程序与之相对应,这样就乱套了。

3、约束:书写一个文档对当前的XML文档进行约束。

4、dtd与xml文档进行关联的方式:dtd约束可以作为一个单独的文件来编写,也可以在xml文件中编写。

xml文档使用DOCTYPE声明语句来声明它所遵循的dtd文件。

关联方式:

  (1)内部dtd方式:在xml文件内部书写dtd规范。

    格式:<!DOCTYPE 根元素 [具体规范内容]>,其中书架是根元素,注意两个空格的使用。

  (2)外部dtd方式:使用单独的dtd文件规范xml内容。

    格式:<!DOCTYPE 根元素 SYSTEM "DTD文件url">,其中书架是根元素,注意几个空格的使用。

  (3)公共dtd方式:使用互联网上的dtd文件。

    格式:<!DOCTYPE 根节点 PUBLIC "dtd文件名称" "dtd公共文件的url">

5、dtd语法细节

(1)元素定义:ELEMENT

(2)属性定义:ATTLIST

(3)实体定义:ENTITY

二、元素定义:ETD

三、属性定义。

格式:

<!ATTLIST 元素名称

  属性名  属性类型  约束

  属性名  属性类型  约束

>

四、实体定义。

1、实体的本质:变量,用于引用普通文本或者特殊字符的快捷方式的变量。

2、分类。

  (1)内部实体。

    【1】引用实体

      语法格式:<!ENTITY 实体名称 “实体内容”>

      使用方式:在xml文档中,直接使用“&实体名称”的方式

      举例:<!ENTITY name "kdyzm">,在xml文档中只需要使用&name就可以相当于直接拿到了"kdyzm"字符串

    【2】参数实体

      语法格式:<!ENTITY %实体名称 "实体内容">

      使用方式:在dtd文档中,使用%实体名称整体引用“试题内容”

      举例:<!ELEMENT %base "title,year,price">,在dtd文档中:<!ELEMENT BOOK %base>

   (2)外部实体

      语法格式:<!ENTITY 实体名称 SYSTEM "URL">

      使用方式:直接使用&实体名称引用。

      举例:<!ENTITY INFO SYSTEM "PART.XML">,在xml文件中,则直接使用&info引用PART.XML文件中的字符串。

 五、dtd文件实例。

1、电视节目表dtd

<!DOCTYPE TVSCHEDULE [

<!ELEMENT TVSCHEDULE (CHANNEL+)>
<!ELEMENT CHANNEL (BANNER,DAY+)>
<!ELEMENT BANNER (#PCDATA)>
<!ELEMENT DAY (DATE,(HOLIDAY|PROGRAMSLOT+)+)>
<!ELEMENT HOLIDAY (#PCDATA)>
<!ELEMENT DATE (#PCDATA)>
<!ELEMENT PROGRAMSLOT (TIME,TITLE,DESCRIPTION?)>
<!ELEMENT TIME (#PCDATA)>
<!ELEMENT TITLE (#PCDATA)>
<!ELEMENT DESCRIPTION (#PCDATA)> <!ATTLIST TVSCHEDULE NAME CDATA #REQUIRED>
<!ATTLIST CHANNEL CHAN CDATA #REQUIRED>
<!ATTLIST PROGRAMSLOT VTR CDATA #IMPLIED>
<!ATTLIST TITLE RATING CDATA #IMPLIED>
<!ATTLIST TITLE LANGUAGE CDATA #IMPLIED> ]>

2、报纸文章dtd

<!DOCTYPE NEWSPAPER [ 

<!ELEMENT NEWSPAPER (ARTICLE+)>
<!ELEMENT ARTICLE (HEADLINE,BYLINE,LEAD,BODY,NOTES)>
<!ELEMENT HEADLINE (#PCDATA)>
<!ELEMENT BYLINE (#PCDATA)>
<!ELEMENT LEAD (#PCDATA)>
<!ELEMENT BODY (#PCDATA)>
<!ELEMENT NOTES (#PCDATA)> <!ATTLIST ARTICLE AUTHOR CDATA #REQUIRED>
<!ATTLIST ARTICLE EDITOR CDATA #IMPLIED>
<!ATTLIST ARTICLE DATE CDATA #IMPLIED>
<!ATTLIST ARTICLE EDITION CDATA #IMPLIED> <!ENTITY NEWSPAPER "Vervet Logic Times">
<!ENTITY PUBLISHER "Vervet Logic Press">
<!ENTITY COPYRIGHT "Copyright 1998 Vervet Logic Press"> ]>

3、产品目录dtd

<!DOCTYPE CATALOG [

<!ENTITY AUTHOR "John Doe">
<!ENTITY COMPANY "JD Power Tools, Inc.">
<!ENTITY EMAIL "jd@jd-tools.com"> <!ELEMENT CATALOG (PRODUCT+)> <!ELEMENT PRODUCT
(SPECIFICATIONS+,OPTIONS?,PRICE+,NOTES?)>
<!ATTLIST PRODUCT
NAME CDATA #IMPLIED
CATEGORY (HandTool|Table|Shop-Professional) "HandTool"
PARTNUM CDATA #IMPLIED
PLANT (Pittsburgh|Milwaukee|Chicago) "Chicago"
INVENTORY (InStock|Backordered|Discontinued) "InStock"> <!ELEMENT SPECIFICATIONS (#PCDATA)>
<!ATTLIST SPECIFICATIONS
WEIGHT CDATA #IMPLIED
POWER CDATA #IMPLIED> <!ELEMENT OPTIONS (#PCDATA)>
<!ATTLIST OPTIONS
FINISH (Metal|Polished|Matte) "Matte"
ADAPTER (Included|Optional|NotApplicable) "Included"
CASE (HardShell|Soft|NotApplicable) "HardShell"> <!ELEMENT PRICE (#PCDATA)>
<!ATTLIST PRICE
MSRP CDATA #IMPLIED
WHOLESALE CDATA #IMPLIED
STREET CDATA #IMPLIED
SHIPPING CDATA #IMPLIED> <!ELEMENT NOTES (#PCDATA)> ]>

 六、使用JavaScript校验XML文件

 <html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<script language="javascript">
//从语法上分析:parse
//1.创建xml文档解析器对象 var xmldoc =new ActiveXObject("Microsoft.XMLDOM");
//2.开启xml校验
xmldoc.validateOnParse="true";
//3.装载xml文档
xmldoc.load("Person.xml"); //4.获取错误信息
var result=xmldoc.parseError.reason;
if(result!="")
{
document.write("错误代码:"+xmldoc.parseError.errorCode+"<br/>");
document.write("错误信息:"+xmldoc.parseError.reason+"<br/>");
document.write("错误行数:"+xmldoc.parseError.line+"<br/>");
}
else
{
document.write("无错误信息!");
}
</script>
</html>

一、Schema简介

【JAVA与XML、dtd约束、Schema约束】的更多相关文章

  1. XML DTD跟SCHEMA约束 语法了解

    dtd语法 元素: <!Element 元素名称 数据类型|包含内容> 数据类型: #PCDATA:普通文本 使用的时候一般用()引起来 包含内容: 该元素下可以出现哪些元素, 用()引起 ...

  2. xml初步,DTD和Schema约束

    XML 可扩展的标记语言(!!!可扩展) 作用 1.存放数据 2.配置文件 语法 文档声明 <?xml version="1.0" encoding="UTF-8& ...

  3. XML概念定义以及如何定义xml文件编写约束条件java解析xml DTD XML Schema JAXP java xml解析 dom4j 解析 xpath dom sax

    本文主要涉及:xml概念描述,xml的约束文件,dtd,xsd文件的定义使用,如何在xml中引用xsd文件,如何使用java解析xml,解析xml方式dom sax,dom4j解析xml文件 XML来 ...

  4. XML约束——Schema约束

    XML Schema 也是一种用于定义和描述 XML 文档结构与内容的模式语言,其出现是为了克服 DTD 的局限性 XML Schema VS DTD: •XML Schema符合XML语法结构. • ...

  5. DTD与Schema约束

    1.DTD:(Document Type Definition)是一套为了进行程序间的数据交换而建立的关于标记符的语法 规则.它是标准通用标记语言.2.XML Schema 是基于XML的DTD替代者 ...

  6. 在myeclipse等IDE中添加本地的dtd与schema约束文件

      *针对没有网络无法正确引入dtd而使用不了提示的问题 (配置完后重启IDE)   window->perferences- > 搜索xml c 找到xml catalog 右边点击 a ...

  7. xml语法、DTD约束xml、Schema约束xml、DOM解析xml

    今日大纲 1.什么是xml.xml的作用 2.xml的语法 3.DTD约束xml 4.Schema约束xml 5.DOM解析xml 1.什么是xml.xml的作用 1.1.xml介绍 在前面学习的ht ...

  8. XML的Schema约束

    XSD文档至少要包含:schema根元素和XML模式命名空间的定义.元素定义.需要注意的是XSD中必须定义一个且只能定义一个schema根元素,根元素中包括模式的约束,XML模式命名空间的定义,其他命 ...

  9. Schema约束, dom4j解析

    Schema是新的XML文档约束:Schema要比DTD强大很多,是DTD替代者;Schema本身也是XML文档,但Schema文档的扩展名为xsd,而不是xml .Schema功能更强大,数据类型更 ...

  10. schema约束和引入

    schema的概述 schema约束同为xml文件的约束模式语言之一, 最大的作用是为了验证xml文件的规范性的. 是为了解决dtd约束不够的问题, 相应的他的配置就变得比较复杂 schema本身就是 ...

随机推荐

  1. Caffe学习系列(8):solver及其配置

    solver是caffe的核心. net: "examples/mnist/lenet_train_test.prototxt" test_iter: 100 test_inter ...

  2. windows 下安装 mysql

    1.根据系统,选择下载mysql community server(32/64) 版本 2.解压下载的文件 3.配置环境变量 将mysql目录下的bin目录路径配置到环境变量Path中,如下图所示 4 ...

  3. linux u-boot跟踪方法总结

    拿到一块板子,其中很重要的一项就是看电路图还有Datasheet. 这个真的很重要,首先你要知道cpu的架构是什么,armv7?arvmv5?还是其他的,哪个公司的芯片?是freescale 还是TI ...

  4. HackerRank savita-and-friends

    Description 在一条边上求一个点,使得这个点到所有点的最长的最短距离 最短. \(n \leqslant 10^5\) Sol Dijkstra+扫描线+单调队列. 这个好像叫什么最小直径生 ...

  5. 【iOS开发-22】navigationBar导航条和navigationItem设置:基本搞定导航条上的文字和按钮以及各种跳转

    http://blog.csdn.net/weisubao/article/details/39646739?utm_source=tuicool&utm_medium=referral (1 ...

  6. 【leetcode】Word Search

    Word Search Given a 2D board and a word, find if the word exists in the grid. The word can be constr ...

  7. 解读Unity中的CG编写Shader系列八(镜面反射)

    转自http://www.itnose.net/detail/6117378.html 讨论完漫反射之后,接下来肯定就是镜面反射了 在开始镜面反射shader的coding之前,要扩充一下前面提到的知 ...

  8. ACM/ICPC 之 差分约束系统两道(ZOJ2770-POJ1201)

    当对问题建立数学模型后,发现其是一个差分方程组,那么问题可以转换为最短路问题,一下分别选用Bellmanford-SPFA解题 ZOJ2770-Burn the Linked Camp //差分约束方 ...

  9. INNODB自增主键的一些问题

    背景: 自增长是一个很常见的数据属性,在MySQL中大家都很愿意让自增长属性的字段当一个主键.特别是InnoDB,因为InnoDB的聚集索引的特性,使用自增长属性的字段当主键性能更好,这里要说明下自增 ...

  10. winrt反射

    第一步引用扩展类. using System.Reflection.IntrospectionExtensions; 第二步反射. gridView是我定义的GridView控件.ItemClick是 ...