百度百科  传送门

  W3school  传送门

  XML语言(可扩展标记语言):是一种表示数据的格式,按照xml规则编写的文本文件称为xml文件

Learn

  一、编写XML文件
  二、DTD约束
  三、schema约束(DTD下一代) 

  html也是标记语言,html里面的标记是固定的,每个标记有自己的功能(标记我们可以自己定义)

   XML文件用来表示数据,用来做数据传输,web开发中很多配置文件,都使用XML编写,XML配置文件结构清晰,配置清楚

编写XML文件

  Gary->src->New->Other->XML->XML File->NewFile.xml

<?xml version="1.0" encoding="UTF-8"?>
<goodlist>
<good>
<price>12</price>
<name>香蕉</name>
<place>广州</place>
</good>
<good>
<price>39</price>
<name>苹果</name>
<place>北京</place>
</good>
<good>
<price>33</price>
<name>芒果</name>
<place>深圳</place>
</good>
</goodlist>

NewFile.xml

  文档声明  (必须放到第一行!!)

<?xml version="1.0" encoding="UTF-8"?>

  version="1.0" 声明用的xml版本是1.0

  encoding="UTF-8" 声明用xml传输数据的时候的字符编码

根元素、标签和属性名自定义

  goodslist  根元素(必须要有一个根元素)

  good  标签

  id  属性名

  "1001"  属性值 (必须使用双引号)

  by = Gary  属性名和属性值

  添加注释快捷键  Ctrl+Shift+C  

<!-- 这是注解 -->

二、DTD约束  传送门

  

  DTD用来约束xml文档,规定xml文档中元素的名称,子元素的名称和顺序,元素的属性

  新建一个note.xml文件,Gary->src->New->Other->XML->XML File->note.xml

内部引用DTD约束

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<note>
<to>China</to>
<from>Gary</from>
<heading>Readme</heading>
<body>Welcome!!!</body>
</note>

note.xml

<!DOCTYPE note[
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>

  !DOCTYPE note (第二行)定义此文档是 note 类型的文档。

  !ELEMENT note (第三行)定义 note 元素有四个元素:"to、from、heading,、body"

  !ELEMENT to (第四行)定义 to 元素为 "#PCDATA" 类型

  !ELEMENT from (第五行)定义 from 元素为 "#PCDATA" 类型

  !ELEMENT heading (第六行)定义 heading 元素为 "#PCDATA" 类型

  !ELEMENT body (第七行)定义 body 元素为 "#PCDATA" 类型

  1)规定了note.xml文档里面必须要有note标签

  2)规定文档里面标签顺序

  3)规定文档里面必须要存在所有约束标签

外部引用DTD约束(本地)

  将DTD约束单独放到dtd文件中,xml文件再引用dat文件中约束

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>

note.dtd

  外部 DTD 约束 XML 源文件,通过下面的语法封装在一个 DOCTYPE 定义中

<!DOCTYPE 根元素 SYSTEM "文件名">

(缺少body标签报错了!!!)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>China</to>
<from>Gary</from>
<heading>Readme</heading>
<!-- <body>Welcome!!!</body> --> </note>

note2.xml

外部引用DTD约束(网络)

  Struts框架的配置文档的首行

<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">

三、schema约束(DTD下一代)  传送门 后缀为xsd 

  • XML Schema 可针对未来的需求进行扩展
  • XML Schema 更完善,功能更强大
  • XML Schema 基于 XML 编写
  • XML Schema 支持数据类型
  • XML Schema 支持命名空间
    定义可出现在文档中的元素
定义可出现在文档中的属性
定义哪个元素是子元素
定义子元素的次序
定义子元素的数目
定义元素是否为空,或者是否可包含文本
定义元素和属性的数据类型
定义元素和属性的默认值以及固定值

schema 约束定义值

  新建一个schema文件,Gary->src->New->Other->XML->XML Schema File->note.xsd

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3school.com.cn"
xmlns="http://www.w3school.com.cn"
elementFormDefault="qualified"> <xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element> </xs:schema>

note.xsd

  xsd命名空间

targetNamespace="http://www.w3school.com.cn"
xmlns="http://www.w3school.com.cn"

  指出任何 XML 实例文档所使用的且在此 schema 中声明过的元素必须被命名空间限定

elementFormDefault="qualified" 

  使用schema约束

  创建一个note3.xml文件

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3school.com.cn"
xmlns="http://www.w3school.com.cn"
elementFormDefault="qualified"> <xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element> </xs:schema>

node3.xml

JavaWeb_ XML文件的更多相关文章

  1. JavaWeb_使用dom4j解析、生成XML文件

    dom4j 官网 xml解析DOM文档对象模型(树形结构) DOM方式解析:把xml文档加载到内存形成树形结构,可以进行增删改的操作 Learn   使用dom4j解析文件"NewFile. ...

  2. Asp.Net 操作XML文件的增删改查 利用GridView

    不废话,直接上如何利用Asp.NET操作XML文件,并对其属性进行修改,刚开始的时候,是打算使用JS来控制生成XML文件的,但是最后却是无法创建文件,读取文件则没有使用了 index.aspx 文件 ...

  3. Android 解析XML文件和生成XML文件

    解析XML文件 public static void initXML(Context context) { //can't create in /data/media/0 because permis ...

  4. MyBatis2:config.xml文件

    前言 前一篇文章,讲了MyBatis入门,讲到了MyBatis有两个基本的配置文件,一个用来配置环境信息,一个用来写SQL语句.前者我把它命名为config.xml,config.xml的内容是: & ...

  5. 3. 解析 struts.xml 文件

    1. struts.xml 文件基本配置: 主要放在资源路径下,配置 sturts2相关的 Action , 拦截器等配置 <struts> <!-- 设置常量 --> < ...

  6. Eclipse代码和xml文件的智能提示

    一.代码智能提示 Windows → Preferences → Java→ Editor → Content Assist 将 Auto activation delay(ms): 改为 0 将 A ...

  7. node使用xml-writer生成本地XML文件实例

    npm中xml-writer文档的链接地址:https://www.npmjs.com/package/xml-writer npm中的文档比较简单,而且生成本地xml文件的demo并不正确.本篇是对 ...

  8. xml文件解析(解析以后在RootTableViewController输出)

    这是从美团弄得xml文件,地区和经纬度. 你点了地区以后 ,  就可以查看经纬度 ,因为笔者懒, 有现成的文本框 , 所有偷懒了. 下面是一些枯燥的代码了 . #import <UIKit/UI ...

  9. iOS xml文件的解析方式 XMLDictionary,GDataXMLNode,NSXMLParser

    iOS9之后,默认网络请求是https,所有我们要设置一下网络安全,具体设置如下 1.第三方类库 XMLDictionary 下载地址: https://github.com/nicklockwood ...

随机推荐

  1. Codeforces 1178D. Prime Graph

    传送门 首先每个点至少要有两条边连接 那么容易想到先保证这一点然后再慢慢加边 那么先构成一个环即可:$(1,2),(2,3),(3,4)...(n,1)$ 然后考虑加边,发现一个点加一条边还是合法的, ...

  2. Eclipce远程调试

    1.注意: root权限启动的进程不支持远程调试,也有很多隐患,支持最高权限,应用普通用户启动,又原先安装Tomcat是使用的root权限,普通用户对root安装的软件没有执行权限,可以修改相应权限, ...

  3. 【原创】大叔经验分享(55)spark连接kudu报错

    spark-2.4.2kudu-1.7.0 开始尝试 1)自己手工将jar加到classpath spark-2.4.2-bin-hadoop2.6+kudu-spark2_2.11-1.7.0-cd ...

  4. 谈谈对this的指向问题

    普通函数中:this——window 定时器:this——window 构造函数中:this——当前实例化的对象 事件处理函数:this——事件触发对象

  5. angular项目中ts的配置编译tsconfig.json

    { "compilerOptions": { /* 基本选项 */ "target": "es5", // 指定 ECMAScript 目标 ...

  6. jquery重复绑定

    jquery可以重复绑定一个事件handler,如果一个button绑定了3次onclick,那么点一下按钮就触发三次事件处理程序的调用. 所以如果想动态地变更控件绑定的处理程序,只要unbind() ...

  7. 实验吧flag整理

    奇怪的短信 flagissimple 围在栅栏里的爱ILOVESHIYANBAR. 古典密码flag:CTF{COULDYOUEXCHANGETHEINFORMATION} The Flash-14F ...

  8. QT的DPI支持

    在main函数第一行加入: QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); 鼠标不按下也响应移动事件: setMouseTra ...

  9. 10个不为人知的 Python 冷知识

    转载: 1. 省略号也是对象 ...这是省略号,在Python中,一切皆对象.它也不例外. 在 Python 中,它叫做 Ellipsis . 在 Python 3 中你可以直接写…来得到这玩意. 而 ...

  10. bash配置相关

    登录方式 登录方式分为两种方式: