Java之XML的使用「建议收藏」

Java之XML的使用「建议收藏」一.xml的定义和优势:(1).定义:在描述一些有结构性的数据时应当使用XML来描述,例如:用户信息/省市结构等XML(eXtensibleMarkupLanguage),是一种可扩展的标记语言,类似HTML。XML技术是W3C组织(WorldWideWebConsortium万维网联盟)发布的,目前遵循的是W3C组织于1998年发布的XML1.0规范。HTML:显示页面,网…

大家好,又见面了,我是你们的朋友全栈君。

一.xml的定义和优势:
(1).定义:

在描述一些有结构性的数据时应当使用XML来描述,例如:用户信息/省市结构等
XML(eXtensible Markup Language),是一种可扩展的标记语言,类似HTML。
XML技术是W3C组织(World Wide Web Consortium万维网联盟)发布的,目前遵循的是W3C组织于1998年发布的XML1.0规范。
HTML: 显示页面,网页. 学习里面自带的标签
XML: 传输数据,而非显示数据/少量数据存储。
XML标签没有被预定义,需要用户自行定义标签。

(2).优势:
XML是一种通用的数据交换格式
许多系统的配置文件都使用XML格式
JSP文档也逐步向XML语法格式过渡
许多项目都采用XML作为数据交换格式
在日常应用中会经常看见XML格式的文件
掌握XML是软件开发人员的一项基本技能
struts2.x,spring,hibernate,mybatis等javaee框架中都要用到XML。
XML结构清晰(树状结构),不仅让人能够明白,还让计算机也能够明白。
XML作为一种公订的、开放的标准,不受知识产权的限制.

二.xml的语法格式:
在编写XML文档时,需要先使用文档声明来声明XML文档。且必须出现在文档的第一行。
最简单的语法:
如:<?xml version=”1.0″?>
用encoding属性说明文档所使用的字符编码,默认为UTF-8。保存在磁盘上的文件编码要与声明的编码一致。
如:<?xml version=”1.0″ encoding=”UTF-8″?>
用standalone属性说明文档是否独立,即是否依赖其他文档。
如:<?xml version=”1.0″ standalone=”yes”?>

XML有两个编码: 要保证两个编码相同,都为UTF-8.
内容编码:
文件本身的编码:
一个XML文档必须有且仅有一个根标签,不允许交叉嵌套,严格区分大小写。

CDATA是Character Data的缩写
作用:把标签当做普通文本内容;
语法:<![CDATA[数据内容]]>
作用:
解析器不对CDATA区中的内容进行解析,而是将这些数据原封不动地交给程序去处理。

在XML中文本(包括回车换行,空格等看不见的字符)也是节点

示例:

<?xml version="1.0" encoding="UTF-8"?>
<contacts>
	<linkman id="1">
		<name>lucy</name>
		<email>lucy@qq.com</email>
		<address>广州市天河区</address>
		<group>销售部</group>
	</linkman>
	<linkman id="2">
		<name>张三</name>
		<email>heiguafu@qq.com</email>
		<address>广州市天河区</address>
		<group>运营部</group>
	</linkman>
</contacts>

三.XML约束(了解):
我们以后是不用写规范,主要是根据别人提供的约束把XML文件写出来即可
比如:在JavaEE的框架中使用XML作为配置文件,同时框架的作者也会提供一个约束文件
我们只需要根据约束写好XML即可
(1)dtd约束:

在需要受约束的文件中加入
<!DOCTYPE contacts SYSTEM "dtd的路径">

新建一个后缀叫dtd的xml文件,写入一下内容
<!-- 标签名称 (规范) -->
<!ELEMENT contacts (linkman*)>
<!-- 有序标签 -->
<!ELEMENT linkman (name,email,address,group)>
<!-- 标签名称(需要解析的字符数据) -->
<!ELEMENT name (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT address (#PCDATA)>
<!ELEMENT group (#PCDATA)>
<!-- 标签名 属性名称 属性类型 默认值  -->
<!--
    ID  表示唯一
    #REQUIRED 表示必填
-->
<!ATTLIST linkman id ID #REQUIRED>

(2)schema约束:

用法:
<!-- 
    xmlns -> 当前文档的名称空间
    xmlns:xsi -> 当前文档是schema约束的一个实例
    xsi:schemaLocation -> 当前实例支持的约束文件的位置
 -->
<contacts xmlns="www.520it.com"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="www.cxxx.com xsd的路径">

新建一个后缀叫xsd的xml文件,写入一下内容
<!-- 
    xmlns 当前XML的名称空间 随便写唯一
    xmlns:xs 当前XML中标签来自哪
    targetNamespace 目标文档的名称空间
 -->
<xs:schema xmlns="www.seemygo.com" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="www.cxxx.com" 
    elementFormDefault="qualified">
    <!-- 元素的名称 -->
    <xs:element name="contacts">
        <!-- 元素类型复杂类型 -->
        <xs:complexType>
            <!-- 有循序的 -->
            <xs:sequence>
                <!-- 
                    minOccurs 最少出现次数
                    unbounded 没有限制
                -->
                <xs:element name="linkman" minOccurs="0" maxOccurs="unbounded" >
                    <xs:complexType> 
                        <xs:sequence>
                            <!-- type 表示元素的类型 -->
                                <xs:element name="name" type="xs:string"/>
                                <xs:element name="email" type="xs:string"/>
                                <xs:element name="address" type="xs:string"/>
                                <xs:element name="group" type="xs:string"/>
                        </xs:sequence>
                        <!-- user元素上的属性 -->
                        <xs:attribute name="id" type="xs:ID" use="required"/>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

四.xml的结构:
分析xml文档的结构
包含一个根元素,跟元素中包含若干元素

在Java中万物皆对象,那么xml文档在Java中是谁的对象呢?
使用一种通用的方式把所有的XML结构描述出来
此时我们就要找出XML文件都有的特点,再来描述

在Java中有个org.w3c.dom包,这个包中有一套规范,规范中包含了一下内容
整个xml文档 —-> Document
标签 —-> Element
元素的属性 —-> Attribute
元素的文本 —-> Text(包含文本/换行/空格等)
它们都有共同的父类Node,所以在xml的任何内容都可以称为节点
解析XML也就要调用这5种节点的方法(查API)
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/156570.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 如何关闭笔记本小键盘_笔记本电脑怎么关键盘灯光

    如何关闭笔记本小键盘_笔记本电脑怎么关键盘灯光2016-12-0815:00:40您使用下面两个方法,都可以用来关闭触摸板:(1)请您“双击”触摸板左上角位置的小圆点,当指示灯为橙色时,表示触摸板关闭。(2)或者,请您点击开始—控制面板—鼠标—装置设…2017-01-0116:08:43笔记本的小键盘区一般是在右手边的字母区,是蓝色字的。和台式机一样,笔记本也是有一个NUMLOCK键的。就是小键盘区的开关(一般也是蓝…

  • Python学习笔记三(开发进阶)

    Python学习笔记三(开发进阶)本文主要针对python的package、面向对象编程等进行详述。

  • JavaScript 设计模式之组合模式

    JavaScript 设计模式之组合模式引我们知道地球和一些其他行星围绕着太阳旋转,也知道在一个原子中,有许多电子围绕着原子核旋转。我曾经想象,我们的太阳系也许是一个更大世界里的一个原子,地球只是围绕着太阳原子的一个电子。而我身上的每个原子又是一个星系,原子核就是这个星系中的恒星,电子是围绕着恒星旋转的行星。一个电子中也许还包含了另一个宇宙,虽然这个宇宙还不能被显微镜看到,但我相信它的存在。也许这个想法有些异想天开,但在程序设计中,…

  • java map()_java之map的基本介绍

    java map()_java之map的基本介绍map简介在讲解Map排序之前,我们先来稍微了解下map。map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。其中这四者的区别如下(简单介绍):HashMap我们最常用的Map,它根据key的HashCode值来存储数据,根据key可以直接获取它的Value,同时它具有很快的访问速度。HashMap最多只允许一条记录的…

  • mysql配置参数详解[通俗易懂]

    mysql配置参数详解[通俗易懂]mysql配置参数详解

  • 应用程序中的服务器错误怎么解决_web服务器和http服务器

    应用程序中的服务器错误怎么解决_web服务器和http服务器在SEO工作的过程中,我们偶尔会遇到HTTP500内部服务器错误,这样的问题,它是一个明显的HTTP状态码,它在告知站长,你的网站与服务器某些配置一定出现问题。从SEO的角度,如果你不能够及时解决相关问题,那么你的网站会面临短期内与百度爬虫失去链接,时间长久的话,会严重影响网站的相关排名。那么,如何解决,HTTP500内部服务器错误?根据以往SEO网站诊断的经历,蝙蝠侠IT,将通过如下内容,进行浅…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号