百度百科  传送门

  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. JWT了解和实际使用

    一.JWT JSON Web Token(JWT)是目前最流行的跨域身份验证解决方案.虫虫今天给大家介绍JWT的原理和用法. 1.跨域身份验证 Internet服务无法与用户身份验证分开.一般过程如下 ...

  2. Hadoop组成架构

    Hadoop是apache用来“处理海量数据存储和海量数据分析”的分布式系统基础架构,更广义的是指hadoop生态圈.Hadoop的优势 高可靠性:hadoop底层维护多个数据副本,即使某个计算单元故 ...

  3. Eclipse安装Hadoop插件配置Hadoop开发环境

    一.编译Hadoop插件 首先需要编译Hadoop 插件:hadoop-eclipse-plugin-2.6.0.jar,然后才可以安装使用. 第三方的编译教程:https://github.com/ ...

  4. React源码深度解析视频 某课网(完整版)

    <ignore_js_op> [课程介绍]:        React毫无疑问是前端界主流的框架,而框架本身就是热点.课程以讲解React实现原理为主,并在实现过程中讲解这么做的原因,带来 ...

  5. ORA-00001:unique constraint (use.sys_c0013338) violated

    从报错的 信息来看,是唯一约束.但是第一眼看到use.sys_c0013338 误以为是张表,(老司机帆船了啊,水还是咸的!) 解决方法: SQL>select table_name from ...

  6. Ubuntu中用sudo apt-get install makeinfo时,出错:Unable to locate package

    背景: 在准备ARM交叉编译环境时,执行命令: DISTRO=fsl-imx-x11 MACHINE=imx6qsabresd source fsl-setup-release.sh -b build ...

  7. shell 获取结果中的第n列,第n行

    ls -l | awk '{print $5}' | sed -n '2p' awk 是很实用的文本处理命令,print 到后带的是你要获取第几列,sed -n 是指定第几行.

  8. 004-linux下配置rsyslog日志收集服务器案例 rsyslog+loganalyzer日志服务器,无法添加报表模板解决

    centos6系统 client1:192.168.1.33 centos7系统 client2:192.168.1.44 centos7系统 master:192.168.1.55 配置服务端mas ...

  9. windows静态路由

    本机:192.168.1.10 本机网关:192.168.1.254 目的IP:188.1.1.10 指定网关:192.168.1.107 最多跳数:10跳 route  -p  add  188.1 ...

  10. JavaScript中数组元素删除的七大方法汇总

    原文链接:https://blog.csdn.net/u010323023/article/details/52700770 在JavaScript中,除了Object之外,Array类型恐怕就是最常 ...