一、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>]>

View Code

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">]>

View Code

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)>]>

View Code

 六、使用JavaScript校验XML文件

 1 <html>
 2 <head>
 3 <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
 4 </head>
 5 <script language="javascript">
 6 //从语法上分析:parse
 7 //1.创建xml文档解析器对象
 8
 9 var xmldoc =new ActiveXObject("Microsoft.XMLDOM");
10 //2.开启xml校验
11 xmldoc.validateOnParse="true";
12 //3.装载xml文档
13 xmldoc.load("Person.xml");
14
15 //4.获取错误信息
16 var result=xmldoc.parseError.reason;
17 if(result!="")
18 {
19     document.write("错误代码:"+xmldoc.parseError.errorCode+"<br/>");
20     document.write("错误信息:"+xmldoc.parseError.reason+"<br/>");
21     document.write("错误行数:"+xmldoc.parseError.line+"<br/>");
22 }
23 else
24 {
25     document.write("无错误信息!");
26 }
27 </script>
28 </html>

View Code


一、Schema简介

转载于:https://www.cnblogs.com/kuangdaoyizhimei/p/4297689.html

【JAVA与XML、dtd约束、Schema约束】相关推荐

  1. 第1天 XML和DTD、schema约束

    1.xml * 扩展名:*.xml * 作用:存储.配置 一个XML文件分为如下几部分内容:文档声明.元素.属性.注释  CDATA区.特殊字符.处理指令(processing instruction ...

  2. XML约束——Schema约束

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

  3. xml之schema约束

    前言 schema约束的定义 将dtd文件引入到xml文档中 前言 在这里我们介绍了xml之tdt约束,但是这种约束没法约束属性的值,比如age属性我想限制只能是数字,那就不行了,所以我们这里介绍sc ...

  4. 如何在xml文件中引入约束【带解析】

    1.先搞清楚为啥要对xml编写进行约束? <?xml version="1.0" encoding="utf-8" ?> <?xml-styl ...

  5. xml 属性value换行显示_跟光磊学Java开发-Java解析XML

    XML介绍 XML(EXtensible Markup Language)指的是可扩展的标记语言. XML经常被用于框架的配置文件,例如Mybatis,Spring等开源框架都会使用XML作为配置文件 ...

  6. XML的DTD约束和Schema约束

    ajax是什么? 如图: XML是什么? 可扩展标记语言,标记数据,定义数据类型 允许用户对自己的标记语言进行定义的源语言 xml详细介绍:(http://www.w3school.com.cn/xm ...

  7. XML的约两种约束——DTD、Schema

    在XML技术里,可以编写一个文档来约束一个XML文档的书写规范,这称之为XML约束. 常用的约束技术XML DTD :XML Schema. XML Schema 也是一种用于定义和描述 XML 文档 ...

  8. schema约束文档与xml文件详解

    schema约束文档与xml文件详解 1.前言 2.schema约束文档(.xsd文件) 2.1 targetNameSpace 2.2官方文档与自定义文档的关系 2.3 声明名称空间 2.4 sch ...

  9. java xml约束_[Java教程]XML约束

    [Java教程]XML约束 0 2016-11-09 07:00:53 DTD约束 1)导入dtd方式 内部导入 ]> 外部导入 本地文件系统: SYSTEM"note.dtd&quo ...

最新文章

  1. JSP/Servlet 工作原理
  2. sscanf,sscanf_s及其相关用法
  3. POJ - 3294 Life Forms(二分+后缀数组)
  4. 给git配置http代理
  5. 分布式事务与一致性算法Paxos amp; raft amp; zab
  6. Linux系统编程(八)线程
  7. 什么是mysql的索引_什么是MySQL索引?【详解】
  8. 从rpm包中提取文件的命令
  9. 每位初级开发都应该知道的六件大事
  10. 多字节常量char m='\abcd'
  11. js 浅拷贝(浅复制、浅克隆)、深拷贝(深复制、深克隆)
  12. visual studio设置背景颜色为眼睛保护色
  13. 人工智能语料库技术是什么?来看科普!
  14. 【线性代数笔记】关于两个矩阵相乘等于零矩阵(AB=O)
  15. 微信应用架构!!-----微信应用能力篇
  16. 平面解析几何----圆锥曲线焦点弦上焦半径的倒数和为ep分之2的初等几何证明
  17. 超实用!7 个优秀的 UI 交互动画技巧
  18. 圆柱体的投影特点_圆柱体三面投影作图方法分析
  19. STK中心天体cb等相关文件说明
  20. 电容电压不能突变和电感电流不能突变仿真分析

热门文章

  1. 2020年危险化学品经营单位主要负责人考试内容及危险化学品经营单位主要负责人作业考试题库
  2. java游戏米奇历险记,米奇老鼠历险记
  3. pycharm 设置代码颜色主题
  4. Android 录屏\截图
  5. 金橙子这段代码是什么意思
  6. 记录一次:com.badlogic.gdx.utils.GdxRuntimeException: Error loading audio file: startAni.mp3
  7. SimpleDateFormat使用详解及与毫秒的相互转换
  8. 用C++写一个简单的动态甜甜圈吧字符串显示的那种哦
  9. 智业云桌面将能耗降到台式机的1.x%
  10. logrotate按天滚动nginx日志