xml、xsd和xsl之间的关系和使用实例
简单地说,xsl是说明xml如何表达出来的样式文件,而xsd给出xml文件的格式描述
如果说xml是一叠钞票,xsd就是验钞机,看看里面有没有假钞,而xsl是点钞机,看看到底是多少钱。用xml可以不用xsd,就像花钱的时候不一定要验钞一样,但是收钱的人一般是想要验的。而花钱的时候不能不点钞,不点那就不是花钱了,是玩钱。当然了,点钞不一定要用点钞机,也可以用手点。
比方不是很恰当。想说明的是,xml(文件里面的东西)是内容,xsd是内容的格式,xsl是处理内容的。
下面是xml和xsl结合的例子
product.xml文件的内容如下
<?xml version="1.0"?>
<?xml:stylesheet type="text/xsl" href="table.xsl"?>
<PRODUCTDET>
<PRODUCT PRODID="P001" CATEGORY="TOY">
<DESCRIPTION>SWPI</DESCRIPTION>
<COLOR>BLUE</COLOR>
<RATE>100</RATE>
</PRODUCT>
<PRODUCT PRODID="P002" CATEGORY="TOY">
<DESCRIPTION>SWPI</DESCRIPTION>
<COLOR>BLUE</COLOR>
<RATE>200</RATE>
</PRODUCT>
<PRODUCT PRODID="P003" CATEGORY="BOOK">
<DESCRIPTION>SWPI</DESCRIPTION>
<COLOR>BLUE</COLOR>
<RATE>300</RATE>
</PRODUCT>
</PRODUCTDET>
table.xsl的内容如下
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="COLOR">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="COLOR[end()]">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="text()">
<xsl:value-of select="." />
</xsl:template>
<xsl:template match="/">
<html>
<head><title>MY PRO COLL</title></head>
相关文档:
/// <summary>
/// 支持XML序列化的泛型 Dictionary
/// </summary>
/// <typeparam name="TKey"></typeparam>
/// <typeparam name="TValue"></typeparam>
[XmlRoot("SerializableDictionary")]
public class SerializableDictionary<TKey, TValue& ......
DECLARE @XMLdoc XML
SET @XMLdoc =
'<Book name="SQL Server 2000 Fast Answers">
<Chapters>
<Chapter id="1" name="Installation, Upgrades">
<CreateDate>2009-12-30</CreateDate>
</Chapter>
<Chapter id="2" name="Configuring SQL Server"/>
<Chapter i ......
1、Class.forName的作用?为什么要用?
答:调用该访问返回一个以字符串指定类名的类的对象。
2、Jdo是什么?
答:JDO是Java对象持久化的新的规范,为java data object的简称,也是一个用于存取某种数据仓库中的对象的标准化API。JDO提供了透明的对象存储,因此对开发人员来说,存储数据对象完全不需要额外的代码(如JDBC ......
使用dom4j解析XML时,要快速获取某个节点的数据,使用XPath是个不错的方法,dom4j的快速手册里也建议使用这种方式,标题都写的这么阔气:Powerful Navigation with XPath,呵呵。
方法是使用Document的selectNodes(String XPath)方法,代码写法:
List l = doc.selectNodes("//COLS/COL1");
执行时却抛出以下异常:
Exc ......