百度百科  传送门

  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. 什么是blazor

    blazor是一个微软推出的基于webassembly和C#(面向对象) 以及F#(面向函数)的前端框架 它类似vue react anglar的单页前端框架 只是他不再使用js 或typescrip ...

  2. O002、虚拟化

    参考https://www.cnblogs.com/CloudMan6/p/5233484.html   OpenStack 是云操作系统,要学习 OpenStack,首先需要掌握一些虚拟化和云计算的 ...

  3. vue中添加与删除,关键字搜索

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 基于 docker容器搭建机器学习环境

    下载docker镜像 docker pull ubuntu:18.04 进入ubuntu系统命令 docker run -ti ubuntu /bin/bash 正确退出系统方式 先按,ctrl+p ...

  5. [转] JAVA分为三个体系,JavaSE,JavaEE,JavaME(J2ME)的区别以及各个版

        Java SE(JavaPlatform,Standard Edition).Java SE 以前称为 J2SE.它允许开发和部署在桌面.服务器.嵌入式环境和实时环境中使用的 Java 应用程 ...

  6. 为什么wamp 放两个网站 或者多个网站就很卡很慢,问题在这里

    PHP的配置比较简单,只需要进行一些基本设置的修改就可以了,依次点击—PHP—php.ini,找到这三个地方:short_open_tag = Off(是否允许使用 PHP 代码开始标志的缩写形式(& ...

  7. shell脚本if判断语句报错[: too many arguments的两种原因

    shell脚本,if判断语句报错[: too many arguments 我遇到过两种情况: 1.第一中情况就是网上大家说的,字符串变量中可能存在空格,shell解析时将其认为是多个参数,再进行判断 ...

  8. Delphi CheckBox组件

  9. MVC中 global.asax

    MVC框架下 global.asax 页面的事件 这些事件被触发的 顺序是: Application_BeginRequest Application_AuthenticateRequest Appl ...

  10. php保留两位小数并且四舍五入 保留两位小数并且不四舍五入

    php保留两位小数并且四舍五入 $num = 5566.56831; echo sprintf("%.2f", $num); php保留两位小数并且不四舍五入 $num = 556 ...