XML复习

XML语言:html,xhtml

XML(可拓展标记语言):原自SGML

特点:描述的是语义和结构,不是格式化

      数据和显示所分离xsl

      是自描述语言:使用DTD(.dtd)和schema(.xsd)进行自描述

HTML与XML的区别;

  1.结构上

  2.扩展性

  3.可读性与可维护性

  4.语法上

  5.侧重点:

现状

用途

1.数据传输(JSON)

2.配置文件(pom.xml(Maven),ApplicationContext.xml,web.xml)(yml,yaml(Spring Boot))

3.通信领域

4.开发一些新的语言(SVG)

开发工具:VSCode

语法:1.声明:<?xml version=”1.0” encoding=”UTF-8”?>

标识这个文件是XML文件

Tips:xml中的version不可省略

2.DOM结点:

元素 属性 文本 CDATA 实体 注释

Xml语法:<根元素>

             <子元素></子元素>

</根元素>

<configuration>

   <environments default="mysql">

          <environment id="mysql">

                 <transactionManager type="JDBC" />

                 <dataSource type="POOLED">

                        <property name="driver" value="com.mysql.cj.jdbc.Driver" />

                        <property name="url" value="jdbc:mysql://localhost:3306/db_mybatis?serverTimezone=UTC" />

                        <property name="username" value="root" />

                        <property name="password" value="root" />

                 </dataSource>

          </environment>

   </environments>

   <mappers>

          <mapper resource="com/ssm/mapper/UserMapper.xml" />

   </mappers>

</configuration>

Xml对应的原则:1.必须是以xml声明为开头的

 2.根只有一个

3.大小写敏感

4.””

5.成对(HTML中元素不一定成对,但是在XML中元素是必须成对出现的)

6.规范格式:

<根>
<子1>

<子2>

</子1>

</子2>

</>

这是错误的

注释:<!-- &gt; &It;-->

处理指令:<?terget instruction ?> target:目标程序 instruction:用来传递数据的指令

元素;1.空元素(<a/>)

2.带属性的元素

3.带内容的元素<a width=“20px“ name=”你好“>内容</a>

4.既有内容又有属性的元素

实体引用<>”’&

< &lt;

> &gt;

& &amp;

“ &quot;

‘ &apot;

CDATA:

<![CDATA[

<>”’&

]]>

命名空间:

DTD和XSD

DTD:

内部DTD一定比外部DTD优先级高

<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

<!DOCTYPE configuration SYSTEM "http://mybatis.org/dtd/mybatis-3-config.dtd">

<!DOCTYPE 根元素名 SYSTEM/PUBILC [“DTD-name”] “DTD所在地址”>

<?xml version=”1.0” encoding=”UTF-8”?>

<!ELEMENT><!—定义XML元素-->

<!ATTLIST>元素所有的属性

<!EMTITY>定义实体

<!NOTATION>定义符号

<!ELEMENT authorlist (author+)>

()分组

 |

 +至少出现1次

*容许出现0-∞次

?最多出现一次

,按顺序出现

空元素:

<!ELEMENT authorlist EMPTY>

无限制元素:

<!ELEMENT authorlist ANY>

简单元素

<!ELEMENT authorlist (#PCDATA)>

混合元素:

<!ELEMENT authorlist (#PCDATA|子元素)*>

<!ATTLIST>属性

<!ATTLIST 元素名 属性值 属性类型 属性附加说明>

属性附加说明

#REQUIRED 必须赋值

#IMPLIED 可有可无

#FIXED value 固定值

Default value 默认值

属性类型

CATA

Enumerated

 ID

 IDREF

 ENTITY

 ENTITIES

 NMTOKEN(属性值只能由字母数字下划线,句点冒号连字符组成)

NMTOKENS

实体的声明:区分通用实体和参数实体

1.在引用形式上,通用实体的应用为&entity_name;

               参数实体的应用为%entity_name;

2. 在引用范围上,通用实体可以在XML和DTD中引用

               参数实体只能在DTD中引用

通用实体的定义<!ENTITY entity_name “值”>

参数实体的定义<!ENTITY % entity_name “值”>

Xsd(xml schema)

特征:一致性,完备型,规范性,准确性,面向对象,拓展性

基本结构:

<?xml version=”1.0” encoding=”UTF-8”>

<xsd:schema name=”schema的名字,可以省略”  xmlns:xsd=http://www.w3.org/2001/XMLSchema>

//xsd文件的内容

</xsd:schema>

引用:ApplicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans" 

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

        xsi:schemaLocation="http://www.springframework.org/schema/beans

                     http://www.springframework.org/schema/beans/spring-beans.xsd">

                     <!-- 将指定类配置给Spring,让Spring创建其对象的实例  -->

                  <bean id="userDao" class="com.ssm.ioc_di.UserDaoImpl">

                  </bean>

                  <!-- 添加一个id为userService的Bean -->

                  <bean id="userService" class="com.ssm.ioc_di.UserServiceImpl">

                          <!-- 将id为userDao的Bean实例注入到userService实例中 -->

                          <property name="userDao" ref="userDao"/>

                  </bean>

</beans>

主要组件:

1.类型:
  简单类型和复杂类型

带有子元素或使用属性的元素在Schema中属于复杂类型

复杂类型:

<student>

<sno>1.1</sno>

</student>

简单类型:

<student>安子</student>

2.元素声明  使用element元素定义XML文档中的元素

<element name=”XML元素的名称” type=”XML元素的数据类型” [minOccurs=”最小出现次数,最小为0”] [maxOccurs=”最大出现次数,最小为1,最大为unbounded,无限大”]>

3.属性声明

只有复杂类型才有属性,简单类型没有属性

元素可以有简单和复杂类型,而属性只有简单类型

语法:

<element name=”element_name” type=”dataType”>

<xsd:complexType name=”datatype”>

<xsd:attribute name=”属性名字” type=”simple_type” use=”use_method” default=”value” fixed=”value” >

</xsd:attibute>

</xsd:complexType>

</xsd:element>

Use_method可以取optional(可有可无,默认),required(必须有),prohibited(不可出现,用于restriction元素限制属性使用)

4.组定义

<xsd:group>

<xsd:sequence>

    <xsd:element name=”” type=””>

<xsd:element name=”” type=””>

</xsd:sequence>
</xsd:group>

5.注释

<doucumentation/> 适合阅读的信息

<appinfo/>         文档的应用程序信息

数据类型:

简单类型(只能包含数据)和复杂类型(可以包含元素)

简单类型包含string,boolean,data,dataTime,time,integer,float,自定义数据类型

自定义数据类型:

<xsd:simpleType name=””>

   <xsd:restriction base=”dataTypes”>

<xsd:facets_element value=””>//约束规则

eg:

<xsd:length value=”6”>
</xsd:restriction>

</xsd:simpleType>

正则表达式:(定义字符)

出现0次或1次

*

出现1次或多次

+

出现多次

{n}/{m,n}

出现n次或m~n次

[字符范围]

可选择的字符范围

|

选择关系

^

()

匹配次数时用做整体修饰

复杂类型

命名空间

<元素名 xmlns=”URL”>

使用:

<table xmlns=”URL”>

XML文件有效性的验证:

1.必须有根标签

2.标签必须关闭

3.大小写敏感

4.准确的嵌套

5.属性必须加引号

有效的XML文件的验证

1.XML文件是有效的

2.遵守与之关联的DTD和Schema中定义的规则

3.有效性验证方法:开发工具 编程

XHTML:XHTML 是以 XML 格式编写的 HTML

XPath

  • XPath 使用路径表达式在 XML 文档中进行导航
  • XPath 包含一个标准函数库
  • XPath XSLT 中的主要元素
  • XPath 是一个 W3C 标准

在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档节点(或称为根节点)。

nodename     选取此节点的所有子节点。

/      从根节点选取。

//    从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。

.      选取当前节点。

..     选取当前节点的父节点。

@    选取属性。

例如;

路径表达式

结果

bookstore

选取 bookstore 元素的所有子节点。

/bookstore

选取根元素 bookstore。

bookstore/book

选取属于 bookstore 的子元素的所有 book 元素。

//book

选取所有 book 子元素,而不管它们在文档中的位置。

bookstore//book

选择属于 bookstore 元素的后代的所有 book 元素,而不管它们位于 bookstore 之下的什么位置。

//@lang

选取名为 lang 的所有属性。

注释:假如路径起始于正斜杠( / ),则此路径始终代表到某元素的绝对路径!

通配符:

通配符

描述

*

匹配任何元素节点。

@*

匹配任何属性节点。

node()

匹配任何类型的节点。

谓语:

谓语用来查找某个特定的节点或者包含某个指定的值的节点。谓语被嵌在方括号中。

路径表达式                     结果

/bookstore/book[1]               选取属于 bookstore 子元素的第一个 book 元素。

/bookstore/book[last()]           选取属于 bookstore 子元素的最后一个 book 元素。

/bookstore/book[last()-1]         选取属于 bookstore 子元素的倒数第二个 book 元素。

/bookstore/book[position()<3]   选取最前面的两个属于 bookstore 元素的子元素的 book 元素。

//title[@lang]                        选取所有拥有名为 lang 的属性的 title 元素。

//title[@lang='eng']                  选取所有 title 元素,且这些元素拥有值eng的    lang属性。

/bookstore/book[price>35.00]         选取 bookstore 元素的所有 book 元素,且中的 price 元素的值须大于 35.00。

/bookstore/book[price>35.00]/title         选取 bookstore 元素中的 book 元素的所有   title 元  素,且其中的 price 元素的值须大于 35.00。

XHTML样式表:CSS、XSL

XSL构成:XSLT(可拓展样式表语言转化),XPath,XSL-FO(xsl格式化对象)

XSLT对XML进行转化的过程

1.根据XML构建源树,然后根据XSLT样式表通过XSLT处理器将源树转化为结果树

2.生成结果书后,就可以根据XSL-FO对其进行解释,产生一种显示、打印或播放的格式

基本结构:

<?xml version=”1.0” encoding=”UTF-8”?>

<xsl:stylesheet version=”1.0” xmlns:xsl=http://www.w3.org/1999/Trasform>

<xsl:template match=”\”>

   

</xsl:template>

</xsl:stylesheet>

结构树:根结点 /

处理指令结点       结点

链接样式到XML文档:<?xml-stylesheet type=”text/xsl” herf=”Student.xsl”?>

Xsl的两种根结点:<xsl:stylesheet/>、<xsl:transform/>

Xsl的基本结构:

<?xml version=”1.0” encoding=”UTF-8”?>

<xsl:stylesheet version=”1.0” xmlns=”http://www.w3.org/1999/XSL/Transform”>

<xsl:template match=”/”>

</xsl:templete>

</xsl:stylesheet>

<xsl:template>处理子节点

<xsl:template match=”XPATH表达式来表示匹配模式” name=”模板定义的方法” priority=”定义模板的优先级” mode=”为模板定义模式”>

</xsl:template>

<xsl:apply-templates>处理多个子结点

语法:

<xsl:apply-templates select=”XPath表达式” mode=“区分XSL文件中为相同标记的模板”>

</xsl:apply-templates>

<xsl:value-of>获取结点值

<xsl:value-of select=”XPATH”/>

<xsl:for-each>处理多个元素

<xsl:for-each select=”XPATH”>

</xsl:for-each>

<xsl:sort>对元素输出排序

<xsl:sort select=”XPath” order=”ascending(升序)/descending(降序)” data-type=”text/number/QName” case-order=”当data-type为text时,才填写这个属性,wpper-first(大写字母排前)/lower-first(小写字母排前)”>

<xsl:if>与<xsl:choose> 用于选择的元素

<xsl:if>

语法:

<xsl:if test=””>

</xsl:if>

<xsl:choose>

语法:

<xsl:choose>

</xsl:choose>

<xsl:when>和<xsl:otherwise>

区别  1.<xsl:if>只能在满足条件的之后输出,没有<xsl:else>这种语句

      2.<xsl:choose>可以实现多选一的功能,相当于其他语言中的switch-case结构

      3.<xsl:when><xsl:otherwise>只能放在<xsl:choose>语句中,<xsl:when>可以出现多次,但是<xsl:otherwise>在一个<xsl:choose>中只能出现一次,且这两个元素都是通过test属性指定一个布尔表达式为判断条件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值