ajax是什么?

如图:

XML是什么?

  • 可扩展标记语言,标记数据,定义数据类型
  • 允许用户对自己的标记语言进行定义的源语言
  • xml详细介绍:(http://www.w3school.com.cn/xml/xml_intro.asp)

XML的两个约束:

  • DTD约束(详细做了介绍)
  • Schema约束(简单提一下)

什么是格式良好的XML

①:有且只有一个根元素,例如以下代码中: “persons” 就是根元素


②:区分大小写,例如以上代码中< persons >与< /persons >大小写必须一致

③:正确使用结束标签 就是: <></>

④:正确使用嵌套标签,例如以上代码中标签里面套标签

⑤:使用合法标签名,就是标签里面不能乱加特殊符号,但是可以用中文,一般最好用英文

⑥:定义它有效的属性

ps:自己定义写的文件没有约束,可以随便加

DTD约束是什么?:

DTD的定义:

  • Document Type Definition 文档类型定义,用来约束xml文档
  • 规定xml文档中元素的名称,子元素的名称及顺序,元素的属性等
  • DTD详细介绍:http://www.w3school.com.cn/dtd/dtd_intro.asp

举例,为XML文件写一个DTD的约束,如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE persons[<!ELEMENT persons (person+)><!ELEMENT person (name,age,contact,br?)><!ELEMENT name (#PCDATA)><!ELEMENT age (#PCDATA)><!ELEMENT contact (phone|email)><!ELEMENT phone (#PCDATA)><!ELEMENT email (#PCDATA)><!ELEMENT br EMPTY>
]>
<persons><person><name>张小明</name><age>10</age><contact><phone>1234567</phone></contact><br/></person><person><name>张大明</name><age>35</age><contact><email>123@qq.com</email></contact></person>
</persons>

以上代码解析:

  • !DOCTYPE 是定义约束的入口 persons是根元素 !ELEMENT是元素的意思

  • 元素定义的语法:<!ELEMENT element-name(type)>

  • 元素的分类:①空元素:<!ELEMENT element-name EMPTY>
    ②文本元素:<!ELEMENT element-name(#PCDATA)>
    ③混合元素:<!ELEMENT element-name(e1,e2)>

  • 第一步:按顺序定义全部的元素(在小括号外) 第二步:在小括号内写每一个元素里面的小元素
    例如age和name里面就是文本元素,而contact里面就有phone,email,再例如br就是EMPTY

  • 如果不写元素的限制会报错

  • 元素的限制:①:,逗号是必须要写的 例如name age contact br ②:|或者 例如contact 这样两个根元素里面都有的东西就用或者
    ③:次数+ +表示1~n个 *表示0~n ?表示0或1 默认有且只有一个

例:写一个DTD限制servlet相关标签

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE persons[<!ELEMENT persons (person+)><!ELEMENT person (name,age,contact,br?)><!ELEMENT name (#PCDATA)><!ELEMENT age (#PCDATA)><!ELEMENT contact (phone | email)><!ELEMENT phone (#PCDATA)><!ELEMENT email (#PCDATA)><!ELEMENT br EMPTY>
]>
<persons><person><name>李佳雪</name><age>12</age><contact><phone>256546</phone></contact><br/></person><person><name>李美女</name><age>33</age><contact><email>2830298182@qq.com</email></contact></person>
</persons>

如何对属性进行约束?

代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE persons[<!ELEMENT persons (person+)><!ELEMENT person (name,age,contact,br?)><!ELEMENT name (#PCDATA)><!ELEMENT age (#PCDATA)><!ELEMENT contact (phone|email)><!ELEMENT phone (#PCDATA)><!ELEMENT email (#PCDATA)><!ELEMENT br EMPTY><!ATTLIST personpid ID #REQUIREDsex (男 | 女) "男"qq CDATA #IMPLIEDparent IDREF #IMPLIED>
]>
<persons><person pid="p1" sex="男" qq="1111" parent="p2"><name>张小明</name><age>10</age><contact><phone>1234567</phone></contact><br/></person><person pid="p2" ><name>张大明</name><age>35</age><contact><email>123@qq.com</email></contact></person>
</persons>

以上代码解析

  • #REQUIRED 的意思此属性(在根元素中)是必须要有的
  • #IMPLIED的意思是此属性(在根元素中)是可有可无的
  • pid 相当于数据库里面的主键是必须要有的
  • 如果不定义性别会自动默认为男
  • qq属于文本 文本都用 CDATA
  • parent 相当于数据库里面的外键
  • IDREF 有它的属性必须是指向别的person里面的id (意思是两个大persons里面的person的id必须一样 第一个指向第二个)

例:写config.xml的DTD约束

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE config[<!ELEMENT config (action*)><!ELEMENT action (forward*)><!ELEMENT forword EMPTY><!ATTLIST actionpath CDATA #REQUIREDtype CDATA #REQUIRED><!ATTLIST forwordname CDATA #REQUIREDpath CDATA #REQUIREDredirect (false | true) "false"  >]><!--config标签:可以包含0~N个action标签-->
<config><!--action标签:可以饱含0~N个forward标签 path:以/开头的字符串,并且值必须唯一 非空 ,子控制器对应的路径type:字符串,非空,子控制器的完整类名--><action path="/registerAction" type="test.action.RegisterAction"><forward name="success" path="/index.jsp" redirect="true" /><forward name="failed" path="/register.jsp" redirect="false" /></action><action path="/loginAction" type="test.action.LoginAction"><forward name="a" path="/index.jsp" redirect="false" /><forward name="b" path="/welcome.jsp" redirect="true" /></action>
</config>

Schema约束是什么?

schema约束同为xml文件的约束模式语言之一, 最大的作用是为了验证xml文件的规范性的.
是为了解决dtd约束不够的问题, 相应的他的配置就变得比较复杂
schema本身就是xml语言, 后缀名为xsd, 对命名空间的支持非常好
schema的根元素就为schema

XML中的特殊符号:

  • &(逻辑与) & amp;
  • <(小于) &l t;
  • 大于 & gt;
  • "(双引号) & quot;
  • '(单引号) & apos;

XML中有些符号是会报错的,所以要用以上几种转译字符

schema约束和dtd约束的区别:

  • Schema符合XML语法结构。
  • DOM、SAX等XML API很容易解析出XML Schema文档中的内容。
  • Schema对名称空间支持得非常好。
  • Schema比XML DTD支持更多的数据类型,并支持用户自定义新的数据类型。
  • Schema定义约束的能力非常强大,可以对XML实例文档作出细致的语义限制。
  • Schema不能像DTD一样定义实体,比DTD更复杂,但Xml Schema现在已是w3c组织的标准,它正逐步取代DTD

XML的DTD约束和Schema约束相关推荐

  1. 【JAVA与XML、dtd约束、Schema约束】

    一.XML. (1)XML:Extensible Markup Language (2)XML是一种标记语言. (3)XML的设计宗旨是传输数据,而不是显示数据. (4)XML标签没有被预定义,即使用 ...

  2. JAVA XML 之 DTD约束

    什么是约束? 约束是用来限定xml文件中可使用的标签以及属性. 也就是告诉程序员,xml该怎么写. 约束分为DTD约束和Schema约束 DTD语法规则 复杂元素也就是有子元素的元素. 简单元素则是没 ...

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

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

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

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

  5. XML约束——Schema约束

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

  6. xml之schema约束

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

  7. 关于Spring配置文件xml文档的schema约束

    最开始使用Spring框架的时候,对于其配置文件xml,只是网上得知其使用方法,而不明其意.最近想着寻根问底的探究一下.以下是本文主要内容: 1.配置文件示例. <?xml version=&q ...

  8. xml基础、DTD验证、Schema验证(备忘)

    一.xml基础详解: 1.概述: xml:即可扩展标记语言,xml是互联网数据传输的重要工具,它可以跨越互联网任何的平台,不受编程语言和操作系统的限制,可以说它是一个拥有互联网最高级别通行证的数据携带 ...

  9. JAVAWEB第六天schema约束

    一.schema简介 1.schema符合xml的语法,它是一个xml文件 2.一个xml中只能有一个dtd文件,但是可以有多个schema,通过名称空间来区分(类似于JAVA中的包) 3.dtd中有 ...

最新文章

  1. 新 TMD 的二号人物
  2. Python全栈 MySQL 数据库 (索引、数据导入、导出)
  3. hdu 5020 求三点共线的组合数(容器记录斜率出现次数)
  4. Parent属性也可释放子对象
  5. 常用的函数式接口_Function接口练习_自定义函数模型拼接
  6. python excel库 linux_用python写一个简单的excel表格获取当时的linux系统信息
  7. 《Python Cookbook 3rd》笔记(3.9):大型数组运算
  8. 二、express中间件
  9. 在组织中管理 Windows Hello 企业版
  10. JMeter-接口测试
  11. 偏最小二乘法(NIPALS经典实现--未简化)
  12. Bias and Debias in Recommender System: A Survey and Future Directions学习笔记
  13. 银河麒麟V10(Kylin Linux V10)之MySQL编译安装
  14. 虚拟内存怎么设置最好_虚拟内存怎么设置到d盘
  15. 红帽linux竞赛,浅谈红帽linux挑战赛(三)
  16. 国家队入场,中国数字资产交易市场或将迎来新一轮“洗牌”
  17. CAD编辑器中CAD线型怎么修改?
  18. 自媒体“人工智能小技巧”文章与视频合集(持续更新)
  19. 2014年国人开发的最热门的开源软件TOP 100
  20. CocosCreator项目实战(15):动画与音效

热门文章

  1. puppet 学习总结(1)——puppet 入门详解
  2. Java基础学习总结(161)——Java 重试机制
  3. Spring Cloud与微服务学习总结(10)——Spring Cloud 常见优化项的总结
  4. bzu-java(五)
  5. 如何利用phpize在生产环境中为php添加新的扩展php-bcmath
  6. SWOT分析法(态势分析法)
  7. 分模块的maven项目调试时报Source not found的解决办法
  8. HTML5的设计目的是为了在移动设备上支持多媒体
  9. log4j.properties配置详解(转载)
  10. 我的100篇随笔纪念,关于JScript开发