2011-07-13 7 views
18

exclude-result-prefixes ve extension-element-prefix arasındaki fark nedir? Her ikisi de XSLT'lerin başlığında kullanılır. EXSLT kullanırken extension-element-prefix'u buldum ve EXSLT website Howto, "sonuç ağacında çıkış ad uzantılarının çıkmasını önlemek için" extension-element-prefix'un kullanıldığını söylüyor.XSLT ad alanı bildiriminde hariç tutma sonucu önekleri ve uzantı öğesi öneki arasındaki fark nedir?

Ancak bu doğru değil (libxslt kullanarak). Sadece exclude-result-prefixes uzantı ad alanını kaldırır. O zaman neden extension-element-prefix'a ihtiyacım var ???

Örnek: Libxslt'nin (xsltproc) ile

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:exsl="http://exslt.org/common" version="1.0" 
    extension-element-prefix="exsl"> 

<xsl:template match="/"> 
    <blabla/> 
</xsl:template> 

</xsl:stylesheet> 

Benim çıkışı:

<?xml version="1.0"?> 
<blabla xmlns:exsl="http://exslt.org/common"/> 

cevap

12

ad http://exslt.org/common bir gibi EXSLT fonksiyonlarını kullanmak için extension-element-prefix niteliğini gerekmez. Bu, http://exslt.org/functions ad alanına func:function gibi uzantı elemanlarını kullanmak istediğinizde buna ihtiyaç duyar. extension-element-prefix özniteliği, bu ön ekin olan tüm öğelerin, değişmez sonuç öğelerini değil, XSLT dili tarafından tanımlanan yönergelere ek olarak uzantı yönergeleri olduğunu belirtir.

exclude-result-prefixes'a gelince, bunun doğru olduğunu, yol ifadelerinde veya eşleşme düzenlerindeki düğümleri seçmek için veya uzantı öğeleri eklemek için kullanılan stil sayfalarında bildirilen ve kullanılan ad alanları için sonuç öğelerinizdeki ad alanı bildirimlerinden kaçınmaya yardımcı olduğunu anladınız.

+0

Ah tamam. Bu mantıklı. Ben sadece 'http: // exslt.org/common' ile tamamen kaldırabildiğim için 'extension-element-prefix' kullanmam gerektiğini merak ettim. EXSLT belgelerinin bu kısımda ** yanlış ** olduğunu düşünüyor. – therealmarv

+0

ya da 'extension-element-prefix' yalnızca' extension-element-prefix' gerektiren çıktı ağacından elemanları gizler. Kaydetme yolunda olmak için EXSLT gibi uzantı kütüphaneleri kullandığımda aynı anda hem 'extension-element-prefix 'hem de' exclude-result-prefixes' kullanacağım. – therealmarv

+1

Bazı insanlar, yalnızca dışlama-sonuç-öneklerine ihtiyaç duyduklarında, uzantı-eleman-öneklerini kullanırlar ve EEP'in iki etkisi vardır, çünkü çalışır: isim alanını uzatma öğelerini (göz ardı edebileceğiniz bir ayrıcalık) kullanmanıza olanak verir, ve isim alanını ERP listesine ekler. –