JavaSE学习笔记(3)

XML简介

XML即可扩展的标记语言。因此该语言中所有的标签都是没有预先定义的,开发者可以自己随意的指定。

目前为止所有的标记的语言都属于开源的语言。由W3C组织进行一个基本的维护。

因此大家学习这些语言的时候应该参考W3C公布的文档。

XML作用

1.可以用作软件的配置文件。

2.可以实现独立平台的数据传输。 C à XML à Java   天气预报

3.Web Service。

4.可以描述带关系的数据。

XML体验

XML文件其实在实际的开发中可以帮助开发者进行描述一些带关系的数据。

 
   

以上的数据需要XML进行存储。

1. 编写一个city.xml文件如下

<?xml version="1.0" encoding="utf-8" standalone="yes"?>

<中国>

<北京></北京>

<上海></上海>

<广州>

<天河区></天河区>

<花都区></花都区>

</广州>

</中国>

另存为为UTF-8的编码方式。

2. 使用浏览器打开该应用文件

 
   

至此XML的体验就完成了。因此需要快速的掌握XML的语法基础。

XML语法

如果要掌握XML语言的语法结构那么可以从以下几个方面进行入手:

u  声明指令

语法:

<?xml version=””  encoding=””  standalone=”” ?>

xml 是一个xml文件的指令名通知解析器以XML的方式进行解析

version 指定XML的版本,目前只能是1.0

encoding 指定XML文件的被解析时候的解码方式,一般的值是GBK或UTF-8

standalone 指定该文件时否是独立文件。默认值是yes,也可是no

细节体验:

  1. <>和?号之间不能有任何字符包含空格
  2. ?和xml指令名之间不能有任何的字符包含空格
  3. 版本号只能是1.0
  4. 编码和解码要一致
  5. 三个属性出现的顺序是固定的;【version / encoding / standalone】

u  元素

语法:

<元素名></元素名>

元素名的组成:

字母、数组、下划线和-

不能以数字开头

元素的分类:

根元素       一个XML文件中只能有一个根元素包含其他元素

<a></a>      带标签体的元素

<br/>       没有带标签体的元素,空元素

使用细节:

  1. XML是严格区分大小写的,对于元素、属性以及其他的指令。
  2. XML的元素是可以相互嵌套的
  3. 元素是先开始的后结束

u  属性

语法:

<元素名 属性名1=属性值1 属性名2=属性值2  …>

属性名的约束和元素的约束一致

属性值在设置的时候需要使用单引号或双引号引起来。

举例1:实现一个书的isbn属性。

<?xml version="1.0" encoding="utf-8"  standalone="yes"?>

<books>

<book isbn="001">

<name>XML基础教程</name>

</book>

</books>

属性只是为了给一个元素添加一个标识,那么该标识使用子元素也可以。

<?xml version="1.0" encoding="utf-8"  standalone="yes"?>

<books>

<book isbn="001">

<name>XML基础教程</name>

</book>

<book>

<isbn>002</isbn>                      à 子元素等价于属性

<name>XML基础教程</name>

</book>

</books>

u  特殊字符和CDATA区域

如果在编写XML文件的时候发现属性值或元素的标签体内容要输出具有特殊含义的字符,那么必须使用转义字符(实体)。

常用的转义字符

 
   

但是如果在标签体中大量的出现特殊字符,那么如果要使用转移字符那么就太繁琐了。

解决方案:CDATA区域

语法:

<![CDATA[

// 需要转移的大量字符数据

]]>

举例1:将以下的数据进行快速的转义。

<?xml version="1.0" encoding="utf-8"  standalone="yes"?>

<books>

<book isbn="00&quot;1">

<name>XML基础教程</name>

</book>

<book>

<isbn>002</isbn>

<name>XML基础教程</name>

<content>

<![CDATA[

<html>

<head>

</head>

<body>

</body>

</html>

]]>

</content>

</book>

</books>

u  注释


语言


注释


HTML


<!--    -->


CSS


/*   */


JavaScript


//   /*   */


Java


//   /*  */    /**  */


XML


<!--   -->


JSP


<%--    --%>

举例1:给xml文件添加注释。

<!--XML文件声明-->

<?xml version="1.0" encoding="utf-8"  standalone="yes"?>

<!--唯一的一个根元素-->

<books>

<!--一个book代表一本书-->

<book isbn="001">

<name>XML基础教程</name>

</book>

</books>

运行结果

u  样式指令

如果开发者希望浏览器在解析的XML数据的时候以指定的样式显示XML数据,那么就需要使用样式指令来设置XML的样式文件。

语法:

<?xml-stylesheet  type=”text/css”  href=”路径”?>

1. 编写一个books.xml文件

<?xml version="1.0" encoding="utf-8"  standalone="yes"?>

<books>

<book>

<id>0001</id>

<name>XML基础教程</name>

<author>焦宁波</author>

</book>

<book>

<id>0002</id>

<name>JavaEE高级教程</name>

<author>焦宁波</author>

</book>

</books>

2. 编写一个CSS样式文件

如果开发者没有编写指定的CSS文件但是已经使用了该指令引入的样式,那么浏览器会使用自身的默认的样式来显示XML数据。

默认的结果下:

编辑css样式如下

book{

background:#ff0000;

display:block;

margin-bottom:10px;

width:100px;

}

id,name,author{

display:block;

background:pink;

color:blue;

}

需要另存为为UTF-8。

运行结果

格式良好的XML和有效的XML文档

格式良好的XML即满足基本的XML语法的XML文档称之为格式良好的XML文档。

有效的XML文档即该文件的格式需要满足一定的约束文件。

约束文档是一个要制定约束规则的文件。

被约束文档是一个需要被约束的XML文件。

如果想使用约束文件约束被约束文件那么就需要在被约束文件中引入约束文件。

思考:

格式良好的XML不一定是有效的XML文档。

有效的XML文档一定是格式良好的XML文档。

XML约束技术

W3C提供了常用的约束技术来实现XML文档的约束。常用的技术有DTD(W3C推荐的官方约束标准技术),但是该技术已经过时了,所以民间有另一个约束技术Schema(民间标准)。

DTD约束

DTD即Document Type Definded(文档类型定义)。该技术所形成的约束文件必须以.dtd进行结尾,该文件并不是一个XML文件。是一个普通的文本文件。

u  体验

  1. 编写一个测试的xml文件test.xml

<?xml version="1.0" encoding="utf-8" standalone="no"?>

<书架>

<书>

<书名>Java就业培训教程</书名>

<作者>张孝祥</作者>

<售价>39.00元</售价>

</书>

<书>

<书名>JavaScript网页开发</书名>

<作者>张孝祥</作者>

<售价>28.00元</售价>

</书>

</书架>

  1. 编写一个约束文件制定要约束的规则test.dtd

<!ELEMENT 书架 (书+)>

<!ELEMENT 书 (书名,作者,售价)>

<!ELEMENT 书名 (#PCDATA)>

<!ELEMENT 作者 (#PCDATA)>

<!ELEMENT 售价 (#PCDATA)>

dtd文件约束的被约束文件编码是UTF-8,因此需要将约束文件另存为为UTF-8。

3. 在被约束文件中引入约束文件进行语法的约束

<?xml version="1.0" encoding="utf-8" standalone="no"?>

<!--引入约束文件-->

<!DOCTYPE 书架 SYSTEM "test.dtd">

<书架>

<书>

<书名>Java就业培训教程</书名>

<作者>张孝祥</作者>

<售价>39.00元</售价>

</书>

<书>

<书名>JavaScript网页开发</书名>

<作者>张孝祥</作者>

<售价>28.00元</售价>

</书>

</书架>

4. 使用浏览器进行查看是否满足指定的约束

浏览器虽然提供了查看一个XML文件是否满足指定的约束,但是开发者需要使用程序打开该功能。HTML+CSS+JavaScript

编写一个页面进行XML的有效性校验validate.html

<script>

// 获取校验器对象

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")

// 设置是否是异步

xmlDoc.async="false"

// 打开校验的开关

xmlDoc.validateOnParse="true"

// 加载被约束的XML文件

xmlDoc.load("test.xml")

// 校验的结果

document.write("<br>Error Code: ")

// 输出校验的错误码

document.write(xmlDoc.parseError.errorCode)

document.write("<br>Error Reason: ")

// 输出校验的错误原因

document.write(xmlDoc.parseError.reason)

document.write("<br>Error Line: ")

// 定位错误的行号

document.write(xmlDoc.parseError.line)

</script>

5. 运行浏览器打开校验的页面

如果现实如下说明校验成功

如果现实如下的信息说明不满足规则

 
   

J多学一招: 查看专业的软件开发中配置文件?

<web-app xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation=http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd   à 引入约束文件

version="2.5">

DTD语法

u  引入约束文件

u  DTD基本语法

Schema约束

Schema语法

u  引入约束文件

u  DTD基本语法

总结

熟练掌握XML的基本语法结构即可。

了解DTD和Schema的语法规则

掌握约束文件的引入方法(Spring框架)

时间: 2024-10-06 15:03:02

JavaSE学习笔记(3)的相关文章

javasE学习笔记:关键字super的使用

/* super 的作用: 1 . super可以在子类中引用父类的成员,通过 .的方式和属性.this相对应. 2. 在子类的构造方法中可以可使用super(参数列表)语句调用父类的构造方法 3. 注意: 子类的构造方法中一定要调用父类的构造方法.... */ javasE学习笔记:关键字super的使用,布布扣,bubuko.com

JavaSE学习笔记(五)——类与对象

一.  类和对象 1.1           面向对象与面向过程的区别 1.面向过程 采用面向过程必须了解整个过程,每个步骤都有因果关系,每个因果关系都构成了一个步骤,多个步骤就构成了一个系统,因为存在因果关系每个步骤很难分离,非常紧密,耦合度高,当任何一步骤出现问题,将会影响到所有的系统.如:采用面向过程生产电脑,那么他不会分CPU.主板和硬盘,它会按照电脑的工作流程一次成型. 2.面向对象 面向对象对会将现实世界分割成不同的单元(对象),实现各个对象,如果完成某个功能,只需要将各个对象协作起

JavaSE学习笔记(一)———Java简介与基础

一.  Java语言简介 1.1           计算机语言的发展过程 计算机语言发展主要分为三个阶段: 1.第一代:机器语言 2.第二代:低级语言 3.第三代:高级语言 1.2           Java发展简史 1.Java 是一种程序开发语言,既然是一门语言,就像其他语言一样,具备一定的语法 和自己的数据结构. 2.Java语言来源于sun公司,sun指的是斯坦福大学网络.由james gosling领导并开发. Java语言的具体发展历程 1991~1995  Sun 为了占领智能

javaSE学习笔记—HTTP协议(10)

客户端浏览器和服务器Tomcat要进行基本的请求和响应的处理. 其实浏览器和服务器通信的数据的格式已经使用协议进行固定好了,只要双方发送固定格式的数据,那么就可以完成基本的通信. 如果开发者需要查看这样的数据格式,那么就需要安装一个浏览器的HTTP协议相关的插件. 如果要深入的学习浏览器和服务器通信的数据,那么需要详细的掌握他们之间发送的数据内容. 1  请求信息 GET / HTTP/1.1 ? 请求行 Accept: */* Accept-Language: zh-cn,en-US;q=0.

javase学习笔记]-7.7 this之细节与应用

这一节我们接着上一节来继续学习this关键字. 我们之前在7.5节中的构造函数应注意的细节中提到过一个细节就是构造函数可以调用一般函数,但一般函数不能直接调用构造函数.但是我们没有深究构造函数能不能调用构造函数,那么现在我们就来看一看这个问题. 那么构造函数与构造函数之间是怎么访问呢? 为了掌握这个问题,我们必须要明确一个概念,那就是在一个类中的成员如果要被执行,就必须由对象调用.而每个对象都有一个所属的this. java语言给了关键字this这个功能,那就是用this调用构造函数,而且也是通

[javase学习笔记]-6.2 类与对象的关系

这一节我们来看一下类与对象之间的关系. 我们学习java语言,目的就是用java语言对现实生活中的事物进行描写叙述.那么我们如何来描写叙述呢.这就引出了类,我们在实际实现时,是通过类的形式来体现的. 那么对于现实生活中的事物怎样描写叙述呢? 我们在现实生活中对于事物描写叙述通常仅仅关注两个方面,一个是属性,还有一个就是行为. 那么非常自然.计算机的描写叙述就产生出详细的对象. 比方我们要描写叙述一个小汽车.那么我们要怎么描写叙述呢?通过上面关注两个方面,我们非常轻松的从两个方面进行下面描写叙述:

[javase学习笔记]-7.5 构造函数须要注意的几个细节

这一节我们简单的说几个在使用构造函数时须要注意的细节. 通过我们前几节的学习,我们对构造函数有了一个比較清楚的认识,当我们在创建对象时.我们会调用构造函数.那么我们在定义和调用构造函数时.须要注意哪些细节呢? 第一个须要注意的细节:构造函数与set方法 看两个函数代码: class Person { private String name; private int age; //构造函数,初始化name Person(String n) { name = n; System.out.printl

[javase学习笔记]-8.1 statickeyword之特点

这一节我们来学习java语言中一个新的keyword就是statickeyword. 当然对于每个keyword,我们都要明白的是它有什么作用,怎么用.我们先来看一个样例: class Person { String name;//姓名 String country = "中国";//国籍 public void printInfo() { System.out.println(name+":"+country); } } class StaticTest { pu

[javase学习笔记]-7.4 构造函数的内存加载

这一节我们来说说构造函数在内存中是如何被加载的. 我们之前说过,构造函数只有创建对象时才会被调用并且只调用一次.那么在创建对象的过程中内存中的变化是什么样的呢? 我们接着上一节的Person类,我们分析 class Person { private String name; private int age; Person()//构造函数,分别为成员变量name和age赋固定的值 { name = "baby"; age = 1; System.out.println("per

[javase学习笔记]-7.5 构造函数需要注意的几个细节

这一节我们简单的说几个在使用构造函数时需要注意的细节. 通过我们前几节的学习,我们对构造函数有了一个比较清楚的认识,当我们在创建对象时,我们会调用构造函数.那么我们在定义和调用构造函数时,需要注意哪些细节呢? 第一个需要注意的细节:构造函数与set方法 看两个函数代码: class Person { private String name; private int age; //构造函数,初始化name Person(String n) { name = n; System.out.printl