2010-08-13 14 views
6

मैं एक दर्जन से अधिक XSLT फ़ाइलों के बारे में उपयोग कर रहा हूँ उत्पादन प्रारूपों की एक बड़ी संख्या प्रदान करने के लिए पैरामीटर। फिलहाल उपयोगकर्ता को निर्यात किए जाने वाले फ़ाइल प्रारूप का विस्तार पता होना चाहिए। आरटीएफ, एचटीएमएल, टीXT।XSLT प्रबंधन - उत्पादन के लिए एक स्टाइलशीट करने के लिए मेटाडाटा संलग्न और

मैं भी पैरामीटर का उपयोग करने की अनुमति देते हैं और अधिक विकल्प चाहते हैं। अगर मैं एक्सएसएल फ़ाइल में मेटाडेटा को एम्बेड कर सकता हूं तो मैं फाइलों के माध्यम से स्कैन करके विवरण उठा सकता हूं।

यहां मैं क्या सोच रहा हूं। इस उदाहरण में कार्यक्रम को आवश्यक जानकारी के लिए टिप्पणियों का विश्लेषण करना होगा।

<?xml version="1.0" encoding="UTF-8"?> 
<!-- Title: Export to Rich Text Format --> 
<!-- Description: This Stylesheet converts to a Rich Text Format format which may be used in a word processor such as Word --> 
<!-- FileFormat: RTF --> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
<xsl:param name="CompanyName"/> <!-- Format:String, Description: Company name to be inserted in the footer --> 
<xsl:param name="DateDue"/> <!-- Format:Date-yyyy-mm-dd, Description: Date Due --> 
<xsl:param name="IncludePicture">true</xsl:param><!-- Format:Boolean, Description: Do you want to include a graphical representation? --> 
    <xsl:template match="/"> 
    <!-- Stuff --> 
    </xsl:template> 
</xsl:stylesheet> 

क्या वहां कोई मानक हैं? क्या मुझे एक से अधिक कसाई करने की आवश्यकता है (एक्सएमएल स्कीमा की चपेट में डबलिन कोर)?

पीएस यह परियोजना Argumentative पर लागू की जा रही है।

+0

बहुत अच्छा सवाल (+1)। एक्सएसएलटी में मेटाडेटा का प्रतिनिधित्व करने के लिए एक शर्त समाधान के लिए मेरा उत्तर देखें। –

उत्तर

6

यहाँ मैं किस बारे में सोच रहा हूँ है। में इस उदाहरण के लिए आवश्यक जानकारी के लिए टिप्पणियों को पार्स करना होगा।

आप टिप्पणियों के भीतर मेटाडाटा कोड करने के लिए की जरूरत नहीं है।

मेटाडाटा को सामान्य एक्सएमएल मार्कअप का उपयोग करके एक्सएसएलटी स्टाइलशीट के हिस्से के रूप में निर्दिष्ट किया जा सकता है - जैसा संरचना और अर्थ में समृद्ध है क्योंकि हमें की आवश्यकता है।

यहाँ एक उदाहरण है कैसे करना है कि:

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:meta="my:meta"> 
<xsl:output method="text"/> 

<meta:metadata> 
    <title>Title: Export to Rich Text Format </title> 
    <description> 
    This Stylesheet converts to a Rich Text 
    Format format which may be used in a word processor 
    such as Word 
    </description> 
    <fileFormat>RTF</fileFormat> 
    <parameters> 
    <parameter name="CompanyName" format="xs:string" 
     Description="Company name to be inserted in the footer"/> 

    <parameter name="DateDue" format="xs:date" 
     Description="Date Due"/> 

    <parameter name="IncludePicture" format="xs:boolean" 
     Description="Do you want to include a graphical representation?"/> 
    </parameters> 
</meta:metadata> 

<xsl:param name="CompanyName"/> 
<xsl:param name="DateDue"/> 
<xsl:param name="IncludePicture" select="true"/> 

<xsl:variable name="vMetadata" select= 
     "document('')/*/meta:metadata"/> 

<xsl:template match="/"> 
    This is a demo how we can access and use the metadats. 

    Metadata --> Description: 

    "<xsl:copy-of select="$vMetadata/description"/>" 
</xsl:template> 
</xsl:stylesheet> 

जब इस बदलाव किसी भी XML दस्तावेज़ (इस्तेमाल नहीं किया), परिणाम है पर लागू किया जाता है:

This is a demo how we can access and use the metadats. 

    Metadata --> Description: 

    " 
    This Stylesheet converts to a Rich Text 
    Format format which may be used in a word processor 
    such as Word 
    " 

टिप्पणी करते:

  1. किसी भी तत्व जो नामस्थान में है (निश्चित रूप से नो-नेमस्पेस नहीं है और xsl नेमस्पेस नहीं है) किसी भी xslt स्टाइलशीट के वैश्विक स्तर पर निर्दिष्ट किया जा सकता है।

  2. इस तरह के तत्वों xslt समारोह document() का उपयोग कर पहुँचा जा सकता है।

+0

एक अद्भुत जवाब। बहुत धन्यवाद –

+0

@John_Hartley: मैं विशेष रूप से आत्मविश्लेषी "मेटाडेटा दस्तावेज़ ('')/*/मेटा": पसंद आया वास्तव में, कोड गलत ढंग से प्रारूपित किया गया था - मैं अब स्वरूपण तय कर दी है। –

संबंधित मुद्दे