XML的学习2

前端之家收集整理的这篇文章主要介绍了XML的学习2前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

XML学习2

一只纯菜鸟的角度....持续更新中。一如既往,求指教,求更正。

解决上篇提到的两个问题:xml 为什么要解析?怎么解析?

现在看到这两个问题,就觉得我当时的IQ...一走出去,整条街的平均水平都被我拉低了不少。

xml主要用于配置信息和数据交换,设想下:一个很大的系统(比如一个跨国企业的管理系统)的两个模块用的是不同的语言开发,但由于业务需要者两个模块间必须进行大量的数据交换,xml就提供了很好的解决方案,但对方拿到数据后怎么读懂这些xml文件呢?于是xml解析就出现了。 Xml的解析方式,按模式分可分为:

DOMDOM是面向模型的,一次将XML文档加入内存,编程简单,适合小型文件的解析

SAX SAX是面向事件的,读一部分解析以部分,编程复杂一些,适合大型文件的解析。

按具体实现技术又可以分成很多。这些在我现在还不清楚,以后再写。

昨天用DTD定义了个xml并做了超简单的解析。当时就觉得DTD有些蛋疼,语法晦涩难懂,又看不出有什么牛X的地方。好在今天学到了新的一招:Schema 它搭载更简单的语法,而且语法和xml类似。实现更好效果

我也不知道SchemaDTD的后继者还是另一种技术,但对于我们99%的程序猿来说:英雄不问出处,能解决问题就行所以就别去纠结了。下面就通过简单的实例来入门吧。补充说下XSLT本质上说xslt也是个xml,它里面包含Xpath(用来遍历xml文件的),经过它修饰后的xml能实现数据和显示的分离,但由于这厮的效率太低所以用的很少。现在是个打酱油的了。

目的:schema+xml实现下面的表中的要求,xmlXSLT修饰

字段名

数据类型和约束

编号

唯一/类似于:T03-12/必需 作为属性

姓名

1---30个字符/必需

年龄

18---35的数字/必需

性别

男或女/必需

联系方式

家庭住址

10---100个字符/必需

手机

11个数字/可以多个

固定电话

类似:0735-2599991或010-87654673/可以多个

--------------------------------------------schema文件 students.xsd

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

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:bl="http://www.xxoo.ckon" targetNamespace="http://www.xxoo.ckon" elementFormDefault="qualified" attributeFormDefault="unqualified">

<xs:simpleType name="myprice">

<xs:restriction base="xs:int">

<xs:maxExclusive value="500"/>

<xs:minInclusive value="5"/>

</xs:restriction>

</xs:simpleType>

<xs:element name="students">

<xs:complexType>

<xs:sequence>

<xs:element name="student">

<xs:complexType>

<xs:sequence>

<xs:element name="name">

<xs:simpleType>

<xs:restriction base="xs:string">

<xs:minLength value="1"/>

<xs:maxLength value="20"/>

</xs:restriction>

</xs:simpleType>

</xs:element>

<xs:element name="age">

<xs:simpleType>

<xs:restriction base="xs:int">

<xs:minInclusive value="18"/>

<xs:maxInclusive value="35"/>

</xs:restriction>

</xs:simpleType>

</xs:element>

<xs:element name="sex">

<xs:simpleType>

<xs:restriction base="xs:string">

<xs:enumeration value=""/>

<xs:enumeration value=""/>

</xs:restriction>

</xs:simpleType>

</xs:element>

<xs:element name="relationtel">

<xs:complexType>

<xs:attribute name="address" use="required">

<xs:simpleType>

<xs:restriction base="xs:string">

<xs:minLength value="10"/>

<xs:maxLength value="100"/>

</xs:restriction>

</xs:simpleType>

</xs:attribute>

<xs:attribute name="cellphone" use="optional">

<xs:simpleType>

<xs:restriction base="xs:string">

<xs:pattern value="[1][3,5]\d{9}"/>

</xs:restriction>

</xs:simpleType>

</xs:attribute>

<xs:attribute name="phone" use="optional">

<xs:simpleType>

<xs:restriction base="xs:string">

<xs:pattern value="0731-\d{7,8}"/>

</xs:restriction>

</xs:simpleType>

</xs:attribute>

</xs:complexType>

</xs:element>

</xs:sequence>

<xs:attribute name="stuid" use="required">

<xs:simpleType>

<xs:restriction base="xs:string">

<xs:pattern value="[T][\d,10,11,12]{1}"/>

</xs:restriction>

</xs:simpleType>

</xs:attribute>

</xs:complexType>

</xs:element>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>

-----------------.xml文件

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

<bl:students xmlns:bl="http://www.xxoo.ckon" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xxoo.ckon F:\SHH\XML\src\cn\bl\test1\students.xsd">

<bl:student stuid="T4">

<bl:name>鬼见愁</bl:name>

<bl:age>23</bl:age>

<bl:sex></bl:sex>

<bl:relationtel address="在阿里沙山得到的视频吗个" cellphone="15200399866" phone="0731-2599991"></bl:relationtel>

</bl:student>

</bl:students>

猜你在找的XML相关文章