XML and XSLT (Extensible StyleSheet Language)

Introduction to XML and XSLT

CSS के अलावा भी XML को human readable form में represent किया जा सकता है। इसके लिए आप XSLT (Extensible StyleSheet Language) यूज़ करते है। XSLT एक programming language है जिसे XML documents को transform और represent करने के लिए यूज़ किया जाता है।

सबसे पहले आप एक XML document create करते है। इसके बाद एक XSLT file create करते है। फिर दोनों को एक computer program के द्वारा combine करके एक नयी file generate की जाती है। नयी file एक XML file हो सकती है या fir plain text की भी file हो सकती है।

CSS के comparison में देखें तो XSLT एक programming language होती है। इसमें input parameters, conditions और function calls होते है। XSLT एक procedural programming language ना होकर declarative होती है। XSLT top to bottom fashion में processing करती है। XSLT में एक बार variable की value define करने के बाद आप उसे change नहीं कर सकते है।

Various XSLT (Extensible StyleSheet Language) Processors

अलग अलग operating system और programming languages जैसे की java, perl आदि पर based बहुत से XSLT processors available होते है। आप अपनी need के according suitable processor यूज़ कर सकते है। कुछ processors के बारे में निचे दिया जा रहा है।

Xerces

Xerces java based XML processor होता है। ये apache का software libraries के collection होते है। इनसे आप XML को parse, validate, serialize और manipulate कर सकते है। ये libraries DOM, SAX और SAX2 जैसे API’s को implement करती है। Xerces Java, Perl और C++ में implement किया गया है।

Xalan

Xalan एक XSLT processor है जो XML document को HTML, text और दूसरे document types में convert करने के लिए यूज़ किया जाता है। ये processor XSLT 1.0 XML transformation language को implement करता है। ये processor java और C++ दोनों languages के लिए available है।

xsltproc

ये एक binary application होती है जो different c libraries को यूज़ करके बनायीं जाती है। और इस application में एक xmllint नाम का program भी होता है जो XML documents को validate करने के लिए यूज़ किया जाता है।

Sablotron

ये भी एक binary application होती है जो C++ libraries को यूज़ करते हुए बनायीं गई है। और इसमें perl और python API होती है। ये एक बहुत fast, portable और compact toolkit होती है। ये application XSLT 1.0, DOM Level 2 और XPATH 1.0 को implement करती है।

Saxon

Saxon XML processor को Michael kay ने develop किया था। इस processor को java में implement किया गया है।

XSLT Elements/Commands

XSLT program language की form में एक XML file होती है। इसलिए XSLT की हर command एक element है। हर command को attributes से qualify किया जाता है। निचे आपको कुछ basic commands की list दी जा रही है।

stylesheet

ये सभी XSLT files का root element होता है। इस element के 2 attribute होते है जिनमे आप XSLT namespace और version number define करते है। Example:

<xsl:stylesheet xmlns:xsl="URI" version="1.0">

output

Output के रूप में किस तरह की file generate होगी ये आप output element के द्वारा define करते है। Output की गई file में indentationऔर DTD required हैं या नहीं ये भी इसी element के द्वारा define किया जाता है। Example:

<xsl:output indent="yes">

template

इस command के द्वारा आप XML file का एक particular part match करते है। इस element का एक attribute होता है match जो define करता है की XML tree की किस branch को process करना है। उदाहरण के लिए यदि आप पुरे XML tree को process करना चाहते है तो / यूज़ कर सकते है। Example:

<xsl:template match="/">

value-of

यदि आप किसी एक particular attribute का result चाहते है तो इसके लिए आप value of command यूज़ कर सकते है। Value को select करने के लिए select attribute यूज़ किया जाता है।
Example:

<xsl value-of select="/person/age">

apply-templates

ये command current XSLT file को select attribute में define की गई template के लिए search करता है। यदि कोई भी template नहीं मिलती है तो current template को output कर दिया जाता है। Example:

<xsl:apply-templates select="paragraph|list">

Text

Commands के आलावा XSL file में text भी होता है जिसे processor simple values की तरह treat करता है।

Example

XML File:

<name> Ram Sharma </name>

XSLT File:

<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="URI">
<xsl:output method='text'/>
<xsl:template match="/content">
<xsl:value-of select='.'/>
<xsl:text>&#xa;</xsl:text>
</xsl:template>
</xsl:stylesheet>   

ऊपर दी गई xslt file को ध्यान से देखिये। सबसे पहले हमने इसे XML file की तरह define किया है। उसके बाद इसे XSLT stylesheet के रूप में define किया गया है। Third line में output file का format define किया गया है। इसके बाद template command के द्वारा root element के content को search किया है। इसके बाद root element की value को output किया गया है। इसके बाद line feed character input किया गया है। इसके बाद open किये गए सभी elements को close किया गया है।