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>
相关文档:
public class yzzSerialize
{
private yzzSerialize()
{ }
private static yzzCache cache = new yzzCache();
public static T GetfromXml<T>(string xmlpath, T t)
{
using (FileStream fs = new FileStream(xmlpath, FileMode.Open, FileAcces ......
1、安装DOM4j
http://www.dom4j.org/
2、安装jaxen
http://jaxen.org/releases.html
3、代码
package extract;
import java.io.*;
import org.dom4j.*;
import org.dom4j.io.*;
import java.util.*;
public class XmlExtract {
private SAXReader reader;
private Docum ......
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 ......
一.MsXml创建XML文档示例
// XmlCreationDemo.cpp
#include <stdlib.h>
#include <stdio.h>
// 引入MSXML解析器
#import <msxml4.dll>
using namespace MSXML2;
class InitializeCom
{
public:
InitializeCom() { CoInitialize(NULL); // Initializes the COM library }
~Initializ ......
//create a new Document
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document d = db.newDocument();
//add root Node
Element noteuser = d.createElement("note-users");
d.appendChil ......