XML详细介绍

一.XML概述

XML(可扩展标记语言,eXtensible Markup Language)是一种用于存储和传输数据的标记语言。它是由万维网联盟(W3C)于1998年发布的,旨在提供一种简单、可扩展且自描述的数据格式。

XML的基本特征:

  1. 可扩展性:XML允许用户定义自己的标记(标签),因此可以根据需要灵活地表示各种数据类型,而不是依赖于预定义的标记。

  2. 自描述性:XML文档本身包含了数据及其结构的信息,使得人类和机器都能理解数据的含义。

  3. 结构化:XML文档通过层级结构(树结构)来组织数据,具有父子关系,便于表示复杂的数据结构。

  4. 跨平台:XML是一种文本格式,可以在不同的系统和应用程序之间轻松传输和共享数据。

  5. 可兼容性:XML与许多其他技术兼容,包括HTML、XSLT、JSON等,广泛应用于Web服务、数据交换等领域。

二.XML的基本语法:

一个简单的XML文档示例如下:


<?xml version="1.0" encoding="UTF-8"?>  
<catalog>  
    <book>  
        <title>XML Developer's Guide</title>  
        <author>John Doe</author>  
        <price>44.95</price>  
    </book>  
    <book>  
        <title>Midnight Rain</title>  
        <author>Jane Doe</author>  
        <price>5.95</price>  
    </book>  
</catalog>  

  1. 头声明<?xml version="1.0" encoding="UTF-8"?> 语法上可有可无,当时建议添加,能更明确的指明编码方式。
  2. XML必须是成对的标签,标签名大小写敏感
  3. 标签不能够交叉编写,例如:<a>内容1<b>内容2</a></b>,这种编写方式是错的。
  4. 注释方法
<?xml version="1.0" encoding="UTF-8"?>  
<root>
    <first>内容1</first>
    <second>内容2</second>

    <!--这是注释的方法-->
    <!--<third>错误信息</third>-->
</root>
  1. 特殊字符要用实体转义
<?xml version="1.0" encoding="UTF-8"?>  
<root>
    <first>内容1</first>
    <second>内容2</second>


    <!--<msg>判断3<4成立吗</msg>直接这么写<是无法显示的-->
    <msg>判断3 &lt; 4成立吗</msg>
</root>

在这里插入图片描述

  • 浏览器中打开能正确显示就说明格式正确
    在这里插入图片描述

XML的基本组成部分:

  • 根元素:每个XML文档必须有一个根元素,上述示例中的<catalog>就是根元素。
  • 子元素:根元素可以包含多个子元素,表示数据的不同部分,比如<book>
  • 属性:元素可以有属性,用于提供额外的信息,如<book genre="fiction">
  • 文本内容:元素中可以包含文本内容,如<title>XML Developer's Guide</title>
  • XML声明:XML文档通常以XML声明开始,指定版本和编码格式。

应用场景:

  1. 数据交换:在不同系统和应用之间传输数据。
  2. Web服务:作为SOAP协议的基础,XML在Web服务中被广泛使用。
  3. 配置文件:许多应用程序使用XML格式保存配置设置,比如Eclipse、Apache等。
  4. 文档格式:某些文档格式(如SVG、XHTML)也是基于XML的。

总之,XML因其灵活性和可读性,在数据存储和传输上发挥了重要作用。

XML和HTML有哪些不一样

XML(可扩展标记语言)和HTML(超文本标记语言)是两种用于标记文本的语言,但它们有一些重要的不同之处:

  1. 用途:
  • HTML:主要用于在网页中展示内容,其结构是为了让浏览器能够解析并显示信息。HTML关注的是内容的呈现和布局。
  • XML:主要用于存储和传输数据。XML 关注的是数据的结构和语义,通常用于数据的交换、存储和描述。
  1. 标签:
  • HTML:使用固定的标签,标签数量有限,且标签有特定的语义,例如 <div><span><h1> 等。
  • XML:用户可以自定义标签,标签没有固定的列表,用户可以根据需要定义标签的名称。
  1. 结构:
  • HTML:允许某些标签不闭合(如 ),结构上有所松散。
  • XML:要求所有标签必须正确闭合,结构是严格的,需遵循树形结构。
  1. 可扩展性:
  • HTML:虽然支持某种程度的扩展,但主要的定义是由标准化组织确定的。
  • XML:高度可扩展,允许用户定义自己的标签和结构。
  1. 数据类型:
  • HTML:主要处理文本和图像,重点在于呈现。
  • XML:能够描述复杂的数据结构,支持多种数据类型。
  1. 解析:
  • HTML:浏览器采用宽容解析,即使存在一些错误,也能尝试解析并显示内容。
  • XML:解析器对格式非常严格,任何小错误都会导致解析失败。
  1. 技术支持:
  • HTML:专门为Web设计,紧密结合CSS和JavaScript,用于创建动态和富媒体的网页。
  • XML:与多种技术和协议兼容,如SOAP、SVG、RSS等,在数据交换和存储方面应用广泛。

总结来说,HTML侧重于网页内容的呈现,而XML则专注于数据的存储和交换。两者在设计目的和应用场景上都有显著的不同。

三.XML属性介绍

XML(可扩展标记语言)是一种用于存储和传输数据的文本格式,它允许用户自定义标签和结构。XML的一个重要特性是属性(Attributes),它们用于提供更多的信息或描述关于元素的特征。以下是对XML属性的详细介绍:

属性的基本概念

  1. 定义:

属性是元素的附加信息,通过键值对的形式存在。属性会被定义在开始标签内部。

<书籍 作者="鲁迅" 年份="1921">呐喊</书籍> `

在上面的例子中,“作者”和“年份”就是属性,分别对应于其值“鲁迅”和“1921”。

  1. 书写形式:

属性写在元素的开始标签中,格式为 属性名=“属性值”。多个属性间用空格分开。

<元素 名称="示例" 类型="示范" 版本="1.0" />  
  1. 属性值的规则:
  • 属性值必须用引号包围,可以使用单引号或双引号。
  • 属性值可以包含字母、数字、标点和空格,但不能有多个连续的空格。

属性的特点

  1. 顺序无关:
    属性的顺序在XML文档中是无关紧要的,这与元素子节点的顺序不同。

  2. 不可重复:
    在同一个元素内,属性名必须唯一。例如如下写法是错误的:

<元素 属性="值1" 属性="值2" /> <!-- 错误:属性名重复 -->  
  1. 格式灵活:
    属性值可以是任何类型的字符串,包括文本、数字等。虽然一般上都是使用字符串形式,但可以对其进行解析和转换。

属性的使用场景

  1. 提供额外信息:
    属性常用于描述元素的特征或属性值,例如提供ID、类名等。
<用户 id="123" 名字="张三" />  
  1. 控制信息:
    可以用于控制元素的行为或展示方式,例如在XHTML中使用 class 和 id 属性。
<div class="container" id="main-content"></div>  
  1. 简化结构:
    在某些情况下,使用属性可以使XML文档结构更简洁,减少元素的嵌套。

属性的限制

  • 复杂数据存储:
    属性不适合存储复杂的数据结构。例如,如果需要存储数组或对象,应考虑使用子元素。

  • 缺少层次结构:
    属性是扁平的,不支持层次结构。如果数据需要表达父子关系,使用子元素是更好的选择。

  • 小结

XML属性在数据的管理和表示中起到了重要作用,可以有效地扩展元素的信息。然而,在使用属性时也应当考虑其局限性,合理使用属性和元素的组合,以达到最佳的数据组织效果。

四.XML CDATA

CDATA(字符数据)是XML和HTML中用于包含不需解析的文本的方法。这在处理特殊字符(如尖括号 <、> 和&)时特别重要,因为这些字符在XML中有特殊含义。

CDATA基本概念:

  1. 定义:

CDATA部分允许在XML中包含未解析的字符数据,用 <![CDATA[ 和 ]]> 包围的文本被视为字符数据,且XML解析器不会解析它。

<内容><![CDATA[一些包含特殊字符的文本,如 <、> 和 & 的引用。]]></内容>  

  1. 结构:

CDATA块可包含任何字符,唯独 ]]> 组合不可包含,以免影响关闭。特殊字符无需转义。

使用场景:

  1. 包含特殊字符:

如文本中有XML保留字符(如 <、> 和 &),使用CDATA可以避免解析错误。

<说明><![CDATA[这是一个包含特殊字符的文档,例如 <和>。]]></说明>  
  1. 嵌入脚本和样式:

CDATA常用于嵌入JavaScript或CSS代码,这些代码可能含特殊字符。

<script><![CDATA[  
    function example() {  
        alert("这是一个包含<和>的示例");  
    }  
]]></script>  
  1. 混合内容:

在XML中混合文本和代码(如SQL查询)时,使用CDATA使文档更清晰。

<查询><![CDATA[  
    SELECT * FROM users WHERE name = 'O''Reilly';  
]]></查询>  

CDATA的限制:

  1. 不支持嵌套:
    CDATA不能嵌套,如需再次使用CDATA,必须结束前一个CDATA部分。
<内容><![CDATA[这是CDATA部分<内容><![CDATA[内嵌CDATA]]></内容>]]></内容> <!-- 这是错误的 -->  
  1. 不可用于XML语法:

CDATA不能用于XML结构定义,如元素或属性名称。

  1. 对数据处理不便:

若文本需处理(如搜索、替换),使用CDATA会增加复杂性,因为开发者需记住在解析时这些数据不会被处理。

  • 总结:

CDATA方便在XML中包含非解析文本,尤其是特殊字符。尽管可以避免解析错误,使用时需注意其限制以确保XML的有效性和规范性。现代开发者往往更倾向于使用适当的转义字符,而非CDATA,因为转义方式在某些情况下更利于数据处理和可读性。

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Maven是一款Java项目管理工具,而setting.xml是Maven的配置文件之一,它位于Maven安装目录下的conf文件夹中,用于配置Maven的全局设置、仓库、代理服务器等信息,以及用户自定义的配置信息。下面是setting.xml文件的详细配置介绍: 1. 服务器设置 ``` <servers> <server> <id>server1</id> <username>user1</username> <password>pwd1</password> </server> </servers> ``` 这里定义了一个名为server1的服务器,指定了用户名和密码。 2. 代理服务器设置 ``` <proxies> <proxy> <id>proxy1</id> <active>true</active> <protocol>http</protocol> <host>proxy.example.com</host> <port>8080</port> <username>user1</username> <password>pwd1</password> <nonProxyHosts>localhost|127.0.0.1</nonProxyHosts> </proxy> </proxies> ``` 这里定义了一个名为proxy1的代理服务器,指定了代理服务器的地址、端口、用户名和密码等信息。 3. 仓库设置 ``` <repositories> <repository> <id>central</id> <url>http://central.maven.org/maven2</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> ``` 这里定义了一个名为central的仓库,指定了仓库的地址、是否启用发布版本和快照版本等信息。 4. 插件仓库设置 ``` <pluginRepositories> <pluginRepository> <id>central</id> <url>http://central.maven.org/maven2</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories> ``` 这里定义了一个名为central的插件仓库,指定了仓库的地址、是否启用发布版本和快照版本等信息。 5. 全局设置 ``` <settings> <offline>false</offline> <interactiveMode>true</interactiveMode> <usePluginRegistry>true</usePluginRegistry> <offlineCache> <enabled>false</enabled> </offlineCache> <mirrors> <mirror> <id>mirror1</id> <name>mirror1</name> <url>http://mirror1.example.com</url> <mirrorOf>*</mirrorOf> </mirror> </mirrors> <profiles> <profile> <id>profile1</id> <repositories> <repository> <id>central</id> <url>http://central.maven.org/maven2</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>central</id> <url>http://central.maven.org/maven2</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories> </profile> </profiles> <activeProfiles> <activeProfile>profile1</activeProfile> </activeProfiles> </settings> ``` 这里定义了Maven的全局配置信息,包括是否离线模式、是否交互式模式、是否使用插件注册表等。 以上为setting.xml文件的详细配置介绍,通过配置setting.xml文件,可以更好地控制Maven的行为。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值