XML(eXtensible Markup Language)速成

  首先来介绍一下XML所包含的内容:                            

          XML(eXtensible Markup Language)-描述事物本身
          XSL (eXtensible Stylesheet Language)-修饰XML
          DTD (Docment Type Definition)-约定xml的标签
          Schema-约定xml标签和类型

 

     简单举一个例子,介绍一下XML的语法:

<!-- XML Declaration -->
<?xml version="1.0" encoding="GBK"?>
<person-info>
	<student>
		<id>001</id>
		<name>张三</name>
	</student>
	<!-- 这是李老师 commnets 属性必须包引号 --> 
	<teacher id="10" name="李四"/>
	<student id="11" name="王五">  <desc>
<!--CDATA区  用来表示格式数据,如:可以放入一片文章 -->
<![CDATA[
  		   这个学生来自...,他已经学习了<<Java编程思想>>  
		]]>    
		</desc>
	</student>
	<student></student>
	<student/>
</person-info>

  再介绍一下命名空间,如例子所示

<web-app version="2.4" 
	xmlns="http://java.sun.com/xml/ns/j2ee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

JAVA可利用XML进行数据交换,JSM (Java Message Service);

SML(eXtsnsible Stylesheet Language) -修饰XML

XSLT  t--Transformation ,例如:

<?xml version="1.0" encoding="GB2312"?>
<?xml-stylesheet type="text/xsl" href="student.xsl"?>
<学生信息>
    <学校>Soft</学校>
    <学生>
    	   <编号>0001</编号>
        <姓名>张三</姓名>
        <性别>男</性别>
        <年龄>23</年龄>
    </学生>
     <学生>
     	   <编号>0002</编号>
        <姓名>李斯</姓名>
        <性别>女</性别>
        <年龄>25</年龄>
    </学生>
</学生信息>

SML文件:

<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    <xsl:template match="/">
    	<html>
    	    <head><title>学生信息</title></head>
    	    <body>
     	        <div align="center"><p>
    	            <xsl:value-of select="*/学校"/>
    	        </p></div>
    	    <xsl:apply-templates select="学生信息"/>
    	    </body>
    	</html>
    </xsl:template>
    
    <xsl:template match="学生信息">
        <p align="center">
        <table border="1">
            <tr>
                <td>编号</td>
    	        <td>姓名</td>
    	        <td>性别</td>
    	        <td>年龄</td>
            </tr>
            <xsl:for-each select="学生">
                <tr>
                    <td><xsl:value-of select="编号"/></td>
                    <td><xsl:value-of select="姓名"/></td>
                    <td><xsl:value-of select="性别"/></td>
                    <td><xsl:value-of select="年龄"/></td>
                </tr>
            </xsl:for-each>
        </table>
        </p>
    </xsl:template>
</xsl:stylesheet>

 

DTD实例:

<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE 丛书 SYSTEM "book.dtd">
<丛书>
	<书>
		<名>萍踪侠影</名>
		<人>梁羽生</人>
		<价 unit="RMB">100.60</价>
	</书>
	<书>
		<名>岳阳楼记</名>
		<人>范仲淹</人>
		<价 unit="美元">76.8</价>
	</书>

</丛书>

 

<?xml version="1.0" encoding="gb2312"?>
<!ELEMENT 丛书 (书*)>
	<!ELEMENT 书 (名,人+,价*)>
		<!ELEMENT 名 (#PCDATA)>
		<!ELEMENT 人 (#PCDATA)>
		<!ELEMENT 价 (#PCDATA)>
			<!ATTLIST 价
				unit (RMB|美元|日元) 'RMB'>

1、逗号间隔表示严格按照顺序,空格间隔元素可以不按照顺序
2、+代表至少出现一次
3、*表示出现0或多次
4、没有+或*的修饰表示必须出现一次

Schema 约定XML标签和类型:

<?xml version="1.0" encoding="gb2312"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:element name="从书">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="书">
					<xs:element name="名"  minoccurs="1"></xs:element>
					<xs:element name="人"></xs:element>
					<xs:element name="价">
						<xs:attribute name="unit">
							<xs:enumeration value="RMB"/>
							<xs:enumeration value="美元"/>
							<xs:enumeration value="日元"/>
						</xs:attribute>
					</xs:element>
				</xs:element>
		</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>

两种不同的XML分析模型
DOM—DOM是面向模型的,一次将XML文档加入内存,编程简单,适合小型文件的解析
SAX —SAX是面向事件的,读一部分解析以部分,编程复杂一些,适合大型文件的解析

 

转载于:https://my.oschina.net/barter/blog/91467

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值