XML 可用于各U不同的应用E序Q但其实质是QXML 是一U表C数据的方式?
1。文定义类型和命名I间
1.1 XML的强大之处在于它可以自己定义标记Q但是需要一个文来定义标记的含义,q样解析器才能核查数据是否正。这个文档定义类型被成ؓ(f)QDocument Type DefinitionQDTD.
比方说一个XML文g
<peson name="john" sex="male"/>
里有个sex属性,那性别的话除了(jin)男就是女?jin),解析器本来是不知道sex是性别的意思,那属性值怎么填都不会(x)错的。如果想让解析器知道sex值只能是h奻I那就要定义DTD
<!DOCTYPE 根元?[
<!ELEMENT peson EMPTY>
<!ATTLIST peson
name CDDATA #REQUIRED
sex (MALE | FEMALE) #REQUIRED
>
]>
我其实ƈ不喜ƢDTDQDTD和XML怎么看都很不舒服?BR>
1.2 命名I间 主要目的是ؓ(f)?jin)避免(元素名相同,内容不同Q。不q前面翻阅IBM资料库的时候一文章里写命名空间可能要被W3C取消掉了(jin)?BR>
2。用CSS和XSL昄XML文
2.1 ׃XML主要是用来描q数据的Q所以在昄数据斚w没有HTML那么直接Q想要达到HTML那样的效果,需要CSS和XSL样式表?BR>?个例子一看就明白?
<?xml version="1.0" encoding="UTF-8"?>
<!--引用一个外部CSS样式?/SPAN>-->
<?xml:stylesheet type="text/css" href="test.css"?>
<!--引用一个xsl样式?/SPAN>-->
<?xml:stylesheet type="text/xsl" href="test.xsl"?>
<Resume>
<ID id="1">
<Name>John</Name>
<Sex>male</Sex>
<Age>22</Age>
<Skill>IT</Skill>
</ID>
<ID id="2">
<Name>Tom</Name>
<Sex>male</Sex>
<Age>25</Age>
<Skill>Worker</Skill>
</ID>
</Resume>
<!--test.css-->
Resume{display: block;}
id{display: block;}
Name{display: block; font-size:120%;}
Sex{display:red; text-indent:2em}
Skill{ display:red; text-indent:2em}
Age{ display:red; text-indent:2em}
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="Resume">
<html>
<head>
<title>?/SPAN></title>
</head>
<body>
<xsl:for-each select="ID">
<font color="red"><xsl:value-of select="Name"/></font><br></br>
<xsl:value-of select="Sex"/><br></br>
<xsl:value-of select="Age"/><br></br>
<xsl:value-of select="Skill"/><br></br>
<p></p>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
XSL语法q是比较单的Q可以说一看就明白。两者比较一下,q是XSL直观Q灵zM点,不过q是不方便,q也是ؓ(f)什么HTMLq如此鼎盛的原因?BR>2.2 单介l下XSL的语?BR> 2.21 XSL中最重要的概念就是模板,它是׃个一个模板组成?BR>//定义模板
<xsl:template match="/">
....
<xsl:apply-templates select="Resume" />//调用该模?有点象调用方法(Q;
.....
</xsl:template>
//Q方法定义)(j)
<xsl:template match="Resume">
......
</xsl:template>
2.22 判断语法
循环语句
<xsl:for-each select="元素名称"></xsl:for-each>
条g语句
<xsl:if test=""></xsl:if>
3。文档对象模型DOM和SAX
3.1 DOM把文作Z个对象,通过~程的方式来查询或改变文?BR>DOM是XML在内存中的树(wi)状结构,当XML文g被蝲析器中解析后Q在内存中就建立?jin)一颗相应的?wi)?BR>3.2 什么是XML解析器?
解析是d文q将文分解够进行分析的元素的过E。XML解析器是WEB应用E序最基本勾践块。它是有2个基本APIl成QDOM 和SAX?BR>3.3 DOM的优点在于可以进行随机重复访问;~点是׃DOM是将XML文档全部载入内存中,所以对内存消耗很大,不适合比较大的XML文?BR>
3.4 SAX是可扩展标记语言的简单应用程序编E接口。由于SAX解析时不创徏昄数据l构Q因此它比DOM的效率更好?BR>不过它的~点是只能d前进?BR> DOM和SAX的例子以后会(x)dq来Q所以这里就不写?jin)?/P>
所学到的知道用一张表联系hQ情看:(x)

学习(fn)W记只是单地叙述?jin)下XML基本内容有哪些技术,至于x深刻的理解XML。无它,多动手?/P>
]]>