XML 技术

Posted sweetorangezzz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XML 技术相关的知识,希望对你有一定的参考价值。

1、XML 简介

  • xml,eXtensible Markup Language,可扩展标记语言。是一种标记语言
  • xml 是一种非常灵活的语言,没有固定的标签,所有标签都可以自定义。
  • 通常,xml 都被用于信息的记录和传递。因此,常常用来配置文件。

2、XML 用途

  • XML 把数据从 html 分离

  • XML 简化数据共享

  • XML 简化数据传输

  • XML 简化平台的变更

  • XML 用于创建新的 Internet 语言

3、XML 语法规则

  • 所有 XML 元素都必须有关闭标签
  • XML 标签对大小写敏感
  • XML 必须正确的嵌套
  • XML 文档必须有根元素
  • XML 的属性值必须加引号
  • XML 中,空格会被保留(多个合并为一个)

实体引用(对特殊字符的代替)

< - &lt; (less than)
> - &gt; (greater than)
& - &amp; (ampersand)
- &apos; (apostrophe)
" - &quot; (straight double quotation mark)

4、 XML 约束

DTD约束,Document Type Definition,文档类型定义

XSD约束,XML Schema Definition,XML 结构定义( XML Schema 是基于 XML 的 DTD 替代者。

graph RL 自定义xml文件1 -- 被dtd文件约束 --> dtd文件 自定义xml文件2 -- 被xsd文件约束 --> xsd文件1 xsd文件1 -- 被w3c的xsd文件约束 --> w3c的xsd文件 自定义xml文件2 -- 被xsd文件约束 --> xsd文件2 xsd文件2 -- 被w3c的xsd文件约束 --> w3c的xsd文件

xml 可以引用多个 xsd约束,只能引用一个 dtd约束

xsd约束 种类更多

DTD 约束

内部的 DOCTYPE 声明

<!DOCTYPE 根元素 [元素声明]>

示例代码:

<?xml version="1.0"?>
<!DOCTYPE note [
  <!ELEMENT note (to,from,heading,body)>
  <!ELEMENT to      (#PCDATA)>
  <!ELEMENT from    (#PCDATA)>
  <!ELEMENT heading (#PCDATA)>
  <!ELEMENT body    (#PCDATA)>
]>
<note>
  <to>George</to>
  <from>John</from>
  <heading>Reminder</heading>
  <body>Don‘t forget the meeting!</body>
</note>

以上 DTD 解释如下:

!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" 类型

外部文档声明

假如 DTD 位于 XML 源文件的外部,那么它应通过下面的语法被封装在一个 DOCTYPE 定义中:

<!--本地-->
<!DOCTYPE 根元素 SYSTEM "文件名">
<!--网络-->
<!DOCTYPE 根元素 PUBLIC "url文件名">

这个 XML 文档和上面的 XML 文档相同,但是拥有一个外部的 DTD: (在 IE5 中打开,并选择“查看源代码”命令。)

<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don‘t forget the meeting!</body>
</note> 

这是包含 DTD 的 "note.dtd" 文件:

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

XSD 约束

maven 仓库 的 pom.xml 使用 XSD约束

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

http://maven.apache.org/xsd/maven-4.0.0.xsd

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns="http://maven.apache.org/POM/4.0.0" elementFormDefault="qualified"
           targetNamespace="http://maven.apache.org/POM/4.0.0">
graph LR *.xsd中targetNamespace --"http://maven.apache.org/POM/4.0.0" --> *.xml中xmlns w3c中xsd -- 是xsd文件 http://www.w3.org/2001/XMLSchema--> *.xsd中的xmlns:xs w3c中xsd -- 是xml文件 http://www.w3.org/2001/XMLSchema-instance--> *.xsd中的xmlns:xsi xsi:schemaLocation --- xsd文件位置




以上是关于XML 技术的主要内容,如果未能解决你的问题,请参考以下文章

需要示例代码片段帮助

从 XML 声明片段获取 XML 编码:部分内容解析不支持 XmlDeclaration

创建片段而不从 java 代码实例化它

如何组合绑定片段而不将它们包装在 XML 文字中

我们可以在活动 xml 中编写 UI 以及在片段 xm 中编写 UI 吗?

VS中添加自定义代码片段——偷懒小技巧