XSL Dönüşümleri (XSLT) Sürüm 1.0 | ||
---|---|---|
Önceki | Yukarı | Sonraki |
Bu bölümde temel XPath işlev kütüphanesine ek olarak XSLT'ye özgü işlevlere yer verilmiştir. Bu ek işlevlerin bazıları ayrıca, biçembentte tepe-seviyeden elemanlar tarafından belirtilen bilgileri de kullanıma sokarlar; bu bölümde bu işlevler ayrıca açıklanacaktır.
düğüm-kümesi document(nesne, düğüm-kümesi?) | İşlev |
document
işlevi asıl kaynak belgeden başka XML belgelere de erişimi mümkün kılar.
document
işlevi tek bir argümana sahipse ve bu argüman da bir düğüm kümesi ise, sonuç, belirtilen düğüm kümesinin her düğümü için, düğümün kendi dizgesel değerinin document
işlevinin ilk argümanı, düğümün üyesi olduğu düğüm kümesinin ikinci argümanı olduğu document
çağrılarının sonuçlarının birleşimidir.
document
işlevi iki argümana sahipse ve ilk argüman bir düğüm kümesi ise, sonuç, belirtilen düğüm kümesinin her düğümü için, düğümün dizgesel değerinin document
işlevinin ilk argümanı, ikinci argümanın yine ikinci argümanı olduğu document
çağrılarının sonuçlarının birleşimidir.
document
işlevine aktarılan ilk argümanın bir düğüm kümesi olmaması halinde, ilk argüman string
işlevinin yaptığı gibi bir dizgeye dönüştürülür ve bu dizge bir tanım-yeri (URI) başvurusu olarak ele alınır; Bu tanım-yeri ile tanımlanan özkaynak alınıp getirilir. Bu algetir işleminin sonucu olan veri bir XML belge olarak çözümlenir ve veri modeline uygun ber ağaç oluşturulur (bkz, Veri Modeli). Özkaynağın alınıp getirilmesi ile ilgili bir hata oluşmuşsa, XSLT işlemci hatayı raporlayabilir, raporlamıyorsa, bir boş düğüm kümesi döndürerek hatayı ortadan kaldırabilir. Özkaynağın alınıp getirilmesi ile ilgili olası tek hata çeşidi XSLT işlemcinin tanım-yeri tarafından kullanılan tanım-yeri şemasını desteklemeyişidir. Bir XSLT işlemcinin her tanım-yeri şemasını desteklemesi gerekmez. XSLT işlemcinin belgeleri, XSLT işlemcinin hangi tanım-yeri şemalarını desteklediğini açıklamalıdır.
Eğer tanım-yeri başvurusu bir bölüm betimleyici (adresin sonunda yer alan ve # imi ile başlayan dizgecik) içermiyorsa, belgenin sadece kök düğümünü içeren bir düğüm kümesi döner. Eğer tanım-yeri başvurusu bir bölüm betimleyici içeriyorsa, tanım-yeri başvurusunun bölüm betimleyicisi tarafından betimlenen ağaçtaki düğümleri içeren bir düğüm kümesi döner. Bölüm betimleyicinin ifade ettiği anlam, tanım-yerinden alınıp getirilen özkaynağın ortam türüne bağımlıdır. Eğer bölüm betimleyicinin işlenmesi ile ilgili bir hata oluşmuşsa, XSLT işlemci hatayı raporlayabilir, raporlamıyorsa, bir boş düğüm kümesi döndürerek hatayı ortadan kaldırabilir. Olası hatalar şunlar olabilir:
Bölüm betimleyici bir XSLT düğüm kümesi tarafından ifade edilemeyecek şeyleri betimliyordur (örneğin, bir metin düğümündeki bir karakter aralığı).
XSLT işlemci tanım-yerinden alınıp getirilen özkaynağın ortam türüne özgü bölüm betimleyiciyi desteklemiyordur. Bir XSLT işlemcinin her ortam türünü desteklemesi gerekmez. XSLT işlemcinin belgeleri, XSLT işlemcinin hangi ortam türlerini desteklediğini açıklamalıdır.
Özkaynağın alınıp getirilmesinin sonucu olan veri algetir işleminin sonucunun ortam türünden bağımsız olarak bir XML belge olarak çözümlenir; eğer tepe seviye ortam türü text
ise, ortam türünün text/xml
olduğu durumda uygulanan yöntemle çözümlenir; aksi takdirde, application/xml
ortam türüne özgü yöntemle çözümlenir.
xml
ortam türü olmadığından text/xml
veya application/xml
ortam türünde olmayan veri yine de fiilen XML olabilir.Tanım-yeri başvurusu göreli olabilir. İkinci argümandaki düğüm kümesinde, belgedeki sıraya göre ilk olan düğümün temel tanım-yeri (bkz, Temel Tanım-yeri), göreli tanım yerlerini mutlak tanım yerine dönüştürmek için temel tanım-yeri olarak kullanılır. İkinci argümanda boş düğüm kümesi ile göreli tanım-yeri belirtmek bir hatadır. XSLT işlemci hatayı raporlayabilir, raporlamıyorsa, bir boş düğüm kümesi döndürerek hatayı ortadan kaldırabilir. Eğer ikinci argüman hiç belirtilmemişse, biçembentte document
işlevinin çağrıldığı ifadeyi içeren düğüm öntanımlı değerdir. Göreli tanım-yeri başvurusunun çözümlenmesini sağlaması nedeniyle, sıfır uzunluktaki bir tanım-yeri başvurusunun belgeye bir başvuru oluşuna dikkat ediniz; bu bakımdan, document("")
ifadesi biçembendin kök düğümüne karşılıktır; biçembendin ağaç gösterimi, biçembendi kaynak belgenin başında içeren XML belgeyle tamamen aynıdır.
Eğer iki belge aynı tanım-yerine sahipse bunlar aynı belge olarak ele alınır. Karşılaştırma için kullanılan tanım-yeri, göreli tanım-yerlerini çözümlemekte kullanılan ve bir bölüm betimleyici içermeyen mutlak tanım-yeridir. Eğer ikisi de aynı belgeye aitse iki kök düğüm aynı kök düğüm olarak ele alınır. Bu bakımdan aşağıdaki ifade daima doğru sonuç verecektir:
generate-id(document("foo.xml"))=generate-id(document("foo.xml"))
document
işlevi, bir düğüm kümesinin birden fazla belgeden düğümler içermesini olasılığını arttırır. Böyle bir düğüm kümesi ile aynı belgedeki iki düğümün göreli belge sırası XPath [XPath] tarafından tanımlanmış normal belge sırası olacaktır. İki düğümün farklı belgelerdeki göreli belge sırası, bu iki düğümü içeren belgelerin gerçeklenime bağımlı sıralamasına göre saptanır. Sürekli olarak aynı sonucu vermek dışında gerçeklenimlerin belgeleri nasıl sıralayacağıyla ilgili bir kısıtlama yoktur: Bir gerçeklenim, aynı belge kümesi için daima aynı sıralamayı yapmak zorundadır.
Anahtarlar, belgelerde örtük bir çapraz başvuru yapısıyla çalışma imkanı verir. XML'deki ID
, IDREF
ve IDREFS
öznitelik türleri XML belgelerin kendi çapraz başvurularını doğrudan oluşturabilmeleri için bir mekanizma sağlar. XSLT bunu XPath id
işlevi üzerinden destekler. Bununla birlikte bu mekanizmanın bazı gereklilikleri vardır:
ID türündeki öznitelikler örneğin DTD gibi bir yerde bildirilmelidir. Eğer bir ID özniteliği bir ID türünden öznitelik olarak sadece harici bir DTD altkümesinde bildirilmişse, bu öznitelik sadece, eğer XML işlemci bu harici DTD altkümesini okursa bir ID türünde öznitelik olarak tanınacaktır. Ancak, XML Önergesi, XML işlemcilerin harici DTD altkümelerini okumasını bir zorunluluk değil, bir öneri olarak belirtir.
Bir belge eşsiz ID'lerin tek bir kümesine sahip olabilir. Ayrı ayrı bağımsız eşsiz ID kümeleri olamaz.
Bir elemanın ID'si sadece bir öznitelikte belirtilebilir; elemanın içeriğinde veya bir çocuk eleman tarafından belirtilemez.
Bir ID bir XML adı olmak zorundadır. Örneğin, boşluk içeremez.
Bir eleman en çok bir ID'ye sahip olabilir.
Belli bir ID'ye en çok bir eleman sahip olabilir.
Bu gerekliliklerden dolayı XML belgeler, ID/IDREF/IDREFS öznitelikleriyle açıkça belirtilmese bile bir çapraz başvuru yapısına sahip olurlar.
Bir anahtar şu üçlemeye sahiptir:
anahtarın sahibi olan düğüm
anahtarın ismi (bir genişletilmiş isim)
anahtarı değeri (bir dizge)
Bir biçembentte her belge için anahtar kümesi xsl:key elemanı kullanılarak bildirilir. Bu anahtar kümesi, x diye bir düğüme, y diye bir isme ve z diye bir değere sahipse, x düğümünün z değerli bir y anahtarı olduğundan bahsedebiliriz.
Bu bakımdan, bir anahtar, bir XML ID'sinin sınırlamalarına konu olmayan genelleştirilmiş bir ID çeşididir:
Anahtarlar bir biçembentte xsl:key elemanları kullanılarak bildirilirler.
Bir anahtarın değerinden başka bir de ismi vardır; her anahtar ismi betimleyici uzayından bağımsız, ayrı bir isim olarak düşünülebilir.
Bir isimli anahtar değeri bir eleman için, uygun herhangi bir yerde belirtilebilir; örneğin bir öznitelikte, bir çocuk elemanda veya içerikte belirtilebilir. Belli bir isimli anahtar için bulunacak değerin yerini belirtmek için bir XPath ifadesi kullanılır.
Bir anahtarın değeri keyfi bir dizge olabilir; bir XML adı olmak zorunda değildir.
Bir belgede aynı düğümün farklı anahtar değerleri için aynı isimde çok sayıda anahtarı olabilir.
Bir belgede aynı anahtar ismine ve aynı anahtar değerine sahip çok sayıda farklı düğüm olabilir.
<!-- Grubu: tepe-seviyeden-eleman --> <xsl:key name = nitelikli-ad match = örüntü use = ifade /> | eleman |
xsl:key elemanı anahtarları bildirmek için kullanılır. name
özniteliği ile anahtarın ismi belirtilir. name
özniteliğinin değeri, Nitelikli Adlar bölümünde açıklandığı gibi yorumlanan bir NitelAd
olmalıdır. match
özniteliği bir Örüntü
olup, bir xsl:key elemanı, belirtilen bu örüntüyle eşleşen düğümlerin anahtarları hakkında bilgi verir. use
özniteliği anahtarın değerini belirten bir ifade olup, örüntüyle eşleşen her düğüm için bir kere değerlendirilir. Eğer sonuç bir düğüm kümesi ise, düğüm kümesindeki her düğümün belirtilen isimde, değeri düğümün dizgesel değeri olan bir anahtarı olur; aksi takdirde, sonuç bir dizgeye dönüştürülür ve örüntüyle eşleşen düğümün belirtilen isimde değeri bu dizge olan bir anahtarı olur. Bu bakımdan, bir x düğümünün y isminde ve z değerinde bir anahtara sahip olması için bir xsl:key elemanının sağlaması gerek ve yeter koşullar şunlardır:
x düğümü, xsl:key elemanının match
özniteliğinde belirtilen örüntüyle eşleşir;
xsl:key elemanının name
özniteliğinin değeri y'ye eşit olup,
xsl:key elemanının use
özniteliğinde belirtilen ifade, bir u nesnesinden elde edilen bir geçerli düğüm listesindeki geçerli düğüm olarak x düğümüyle değerlendirildiğinde, z, ya u'nun string
işlevinin yaptığı gibi bir dizgeye dönüştürülmesinin sonucuna eşittir ya da u bir düğüm kümesi olup, z değeri de u'daki düğümlerin bir veya daha fazlasının dizgesel değerine eşittir.
Ayrıca, belli bir düğümle eşleşen birden fazla xsl:key elemanı olabileceğini de aklınızdan çıkarmayın; böyle xsl:key elemanlarının hepsi aynı ithal önceliğine sahip olmasalar bile kullanılırlar.
use
veya match
özniteliğinin değer olarak bir DeğişkenGönderimi
veya bir key
işlev çağrısı içermesi bir hatadır.
düğüm-kümesi key(dizge, nesne) | İşlev |
key
işlevi ID'ler için id
işlevinin yaptığını anahtarlar için yapar. İlk argüman anahtarın ismini belirtir. Argümanın değeri Nitelikli Adlar bölümünde açıklandığı gibi yorumlanan bir NitelAd
olmalıdır. İkinci argüman bir düğüm kümesi olduğunda, sonuç, bu düğüm kümesindeki her düğümün dizgesel değerine key
işlevinin uygulanmasından elde edilen sonuçlarının birleşimi olacaktır. İkinci argüman herhangi bir başka türde bir değer içerdiğinde, argüman string
işlevinin yaptığı gibi bir dizgeye dönüştürülür; bu durumda, işlevden dönen sonuç, değeri bu dizgeye eşit bir isimli anahtara sahip bağlamsal düğümle aynı belgedeki düğümleri içeren bir düğüm kümesi olur.
<xsl:key name="idkey" match="div" use="@id"/>
key('idkey', @ref)
ifadesi, id(@ref)
ifadesinin sonucu olan düğüm kümesi ile döner; XML kaynak belgesinde özniteliğin ID türünde şöyle bildirilmiş olduğu,
<!ATTLIST div id ID #IMPLIED>
ve geçerli düğümün ref
özniteliğinin herhangi bir boşluk karakteri içermediği varsayımıyla.
prototype
elemanı kullanıldığını varsayalım.<prototype name="key" return-type="düğüm-kümesi"> <arg type="dizge"/> <arg type="nesne"/> </prototype>
İşlev isimlerinden bu tanıma atıfta bulunmak için de function
elemanı kullanılıyor olsun.
<function>key</function>
Buradan hareketle biçembent gönderimlerle tanımlar arasındaki hiper bağları şöyle üretecektir:
<xsl:key name="func" match="prototype" use="@name"/> <xsl:template match="function"> <b> <a href="#{generate-id(key('func',.))}"> <xsl:apply-templates/> </a> </b> </xsl:template> <xsl:template match="prototype"> <p><a name="{generate-id()}"> <b>Function: </b> ... </a></p> </xsl:template>
Bu anahtarlar konusu bu işin en zor anlaşılan kısmıdır. Yukarıdakine benzer ama yukarıdakinden her bakımdan daha yararlı olacağını umduğum bir örneği vermek istiyorum.
Bir belirtim belgemiz olsun. Belgede bahsedilen sabitlerden bazılarının tanımları varken bazıları sadece birer dizgesel sabit olsun. Tanımları olanların isimleri belgede geçtikçe (<literal>sabit</literal>
gibi) bu isimler bu tanımlara aynı zamanda birer hiper bağ olsun, tanımları olmayanların da birer sabit oldukları belli olsun, istiyoruz.
<xsl:template match="literal"> <xsl:variable name="idx" select="concat('value-def-', text())"/> <xsl:variable name="targets" select="key('ids', $idx)"/> <xsl:choose> <xsl:when test="count($targets) > 0"> <a href="#{$idx}"> <code><xsl:apply-templates/></code> </a> </xsl:when> <xsl:otherwise> <tt><xsl:apply-templates/></tt> </xsl:otherwise> </xsl:choose> </xsl:template>
Örneklenimin ilk yönergesinde bir değişken ataması yapılıyor. $idx
değişkenine, literal
elemanının içeriğinden bir ID değeri oluşturup bunu atıyoruz. İkinci yönergedeki değişken atamasında ise $idx
değişkenine atadığımız ID değerini içeren düğümleri $ids
değişkeninin değerinden alıp $targets
değişkenine atıyoruz. Tabii bunu yapabilmek için biçembentin başlarında şöyle bir yönergemiz olması gerek (bu anahtar, belgede birer id
özniteliğine sahip bütün elemanları toplayıp $ids
değişkenine atar):
<xsl:key name="ids" match="*" use="@id"/>
xsl:when elemanında aradığımız ID'ye sahip eleman var mı acaba diye bir sınama yapıyoruz. Varsa, XML belgedeki <literal>sabit</literal>
yerine XHTML belgeye sabitin tanımını işaret eden bir hiper bağ yerleştiriyoruz (bu bağ için gereken ID değerini bildiğimiz için bir önceki örnekte olduğu gibi bir ID üretmemiz gerekmiyor). Yoksa, içeriğini bir dizgesel sabit olduğunu vurgulayacak bir imlenimin (tt
) içine alıyoruz.
key
işlevi daima geçerli düğümle aynı belgede yer alan düğümleri döndürür; bir anahtarı başka bir belgeden almak için önce geçerli düğümün değiştirilmesi gerekir.
<bibref>XSLT</bibref>
biçiminde kaynakça girdilerine atıfta bulunduğunu ve bu kaynakçanın da bib.xml
adlı ayrı bir XML belgede girdilerinin şöyle bir veri modeliyle tutulduğunu varsayalım:<entry name="XSLT">...</entry>
Bu durumda biçembent bibref
elemanlarını dönüştürmek için şu kodları içerebilirdi:
<xsl:key name="bib" match="entry" use="@name"/> <xsl:template match="bibref"> <xsl:variable name="name" select="."/> <xsl:for-each select="document('bib.xml')"> <xsl:apply-templates select="key('bib',$name)"/> </xsl:for-each> </xsl:template>
dizge format-number(sayı, dizge, dizge?) | İşlev |
format-number
işlevi birinci argümanında belirtilen sayıyı ikinci argümanında belirtilen biçim örüntüsü dizgesini kullanarak bir dizgeye dönüştürür. Üçüncü argümanda onluk sayı biçimi belirtilir, üçüncü argümanın yokluğunda öntanımlı onluk sayı biçimi kullanılır. Biçim örüntüsü dizgesi JDK 1.1 DecimalFormat sınıfı tarafından belirtilen sözdizimine sahiptir. Biçim örüntüsü dizgesinin gösterimi yerelleştirilebilir: onluk biçim örüntüdeki karakterlerin hangilerinin ne anlama geldiğini belirler (yerelleştirilmeyen tırnak karakteri hariç). Biçim örüntüsü sent imini (#x00A4) içeremez; Bu özellik için destek JDK 1.1'e ilk sürümünden sonra eklenmiştir. Onluk biçim ismi Nitelikli Adlar bölümünde açıklandığı gibi yorumlanan bir NitelAd
olmalıdır. Biçembendin onluk biçimin genişletilmiş isimli bir bildirimini içermemesi bir hatadır.
<!-- Grubu: tepe-seviyeden-eleman --> <xsl:decimal-format | eleman |
xsl:decimal-format elemanı, format-number
işlevi tarafından kullanılan bir biçim örüntüsünün yorumlanışını denetleyen bir onluk biçim bildirir. name
özniteliği belirtilmişse, eleman isimli bir onluk biçim belirtir. name
özniteliğinin değeri Nitelikli Adlar bölümünde açıklandığı gibi yorumlanan bir NitelAd
olmalıdır. Öntanımlı onluk biçim bildirimi yapmak veya tüm öznitelikler (öntanımlılar dahil) için aynı değerle bildirilmiş olmadıkça aynı isimde birden fazla onluk biçim bildirimi yapmak (ithal öncelikleri farklı olsa bile) bir hatadır. Eğer bir biçembent bir öntanımlı onluk biçim bildirimi içermiyorsa, özniteliksiz xsl:decimal-format elemanına eşdeğer bir bildirim uygulanır.
xsl:decimal-format elemanının diğer öznitelikleri JDK 1.1 DecimalFormatSymbols sınıfındaki yöntemlere karşılıktır. Her get
/set
çiftine karşılık xsl:decimal-format elemanı için tanımlanmış bir öznitelik vardır.
Aşağıdaki öznitelikler hem biçim örüntüsündeki karakterlerin yorumlanışını denetler hem de sayının biçimlenmesi sonucu elde edilebilen karakterleri belirtirler:
decimal-separator
özniteliği ondalık ayraç olarak kullanılacak karakteri (Türkçe için virgüldür) belirtir; öntanımlı değer nokta (.
) karakteridir.
grouping-separator
özniteliği bölükleme için kullanılan (Türkçe için noktadır) karakteri belirtir (binler bölükleri gibi); öntanımlı değer virgül (,
) karakteridir.
percent
özniteliği yüzde imi olarak kullanılacak karakteri (Türkçe için de % karakteridir ama sayının ardına değil önüne konur) belirtir; öntanımlı değer yüzde (%
) karakteridir.
per-mille
özniteliği her-milde-bir karakteri olarak kullanılacak karakteri; öntanımlı değer Unicode her-milde-bir (#x2030
) karakteridir.
zero-digit
özniteliği sıfır ratamı olarak kullanılacak karakteri belirtir; öntanımlı değer sıfır (0
) rakamıdır.
Aşağıdaki öznitelikler biçim örüntüsündeki karakterlerin yorumlanışını denetlerler:
digit
özniteliğinde biçim örüntüsünde rakam ifade eden karakter belirtilir; öntanımlı değer diyez (#
) karakteridir.
pattern-separator
özniteliğinde pozitif ve negatif alt örüntüleri ayırmakta kullanılan karakter belirtilir; öntanımlı değer noktalı virgül (;
) karakteridir.
Aşağıdaki öznitelikler biçimlenmiş sayıda yer alan karakterleri veya dizgeleri belirtmekte kullanılır:
infinity
özniteliğinde sonsuzluğu belirtmekte kullanılan dizge belirtilir; öntanımlı değer Infinity
dizgesidir.
NaN
özniteliğinde NaN (Not-a-Number: bir-Sayı-Değil) değerini belirtmekte kullanılan dizge belirtilir; öntanımlı değer NaN
dizgesidir.
minus-sign
özniteliğinde eksi imi olarak kullanılacak karakter belirtilir; öntanımlı değer tire (-
, #x2D) karakteridir.
düğüm-kümesi current() | İşlev |
current
işlevi, tek üyesi geçerli düğüm olan bir düğüm kümesi ile döner. Son tahlilde (başka bir ifadenin içinde yer almayan bir ifadede), geçerli düğüm daima bağlamsal düğümle aynıdır. Bu bakımdan,
<xsl:value-of select="current()"/>
ile
<xsl:value-of select="."/>
aynı anlama gelir. Bununla birlikte, köşeli ayraçlar içindeki geçerli düğüm bağlamsal düğümden farklı bir düğüm olacaktır. Örneğin,
<xsl:apply-templates select="//glossary/item[@name=current()/@ref]"/>
ebeveynleri glossary
elemanları olup, değerleri geçerli düğümün ref
özniteliğinin değerine eşit olan birer name
özniteliğine sahip tüm item
elemanlarını işleyecektir. Aşağıdaki yönerge bunu yapmaz:
<xsl:apply-templates select="//glossary/item[@name=./@ref]"/>
yönergesi
<xsl:apply-templates select="//glossary/item[@name=@ref]"/>
ile aynı anlama gelir. Bunlar, ebeveynleri glossary
elemanları olup, name
ve ref
özniteliklerinin değerleri aynı olan tüm item
elemanlarını işleyecektir.
current
işlevini bir Örüntü içinde kullanmak bir hatadır.
dizge unparsed-entity-uri(dizge) | İşlev |
unparsed-entity-uri
işlevi, bağlamsal düğümle aynı belgede ismiyle belirtilmiş bir çözümlenmemiş öğenin tanım-yerini döndürür (bkz, Çözümlenmemiş Öğeler). Böyle bir öğe yoksa boş dizgeyle döner.
dizge generate-id(düğüm-kümesi?) | İşlev |
generate-id
işlevi argümanında belirtilen düğüm kümesinin belgedeki sıraya göre ilk rastlanılan düğümünü eşsiz olarak betimleyen bir dizge ile döner. Eşsiz betimleyici bir ASCII harf ile başlamalı ve ASCII abecesayısal karakterlerinden oluşmalıdır. Bir gerçeklenim, aynı düğüm için daima aynı betimleyiciyi ve farklı düğümler için farklı betimleyicileri üretecek herhangi bir yöntemi seçmekte özgürdür. Bir gerçeklenim her dönüşümde aynı betimleyicileri üretmek zorunda değildir. Üretilmiş bir eşsiz betimleyicinin belgedeki mevcut (bu üretimin sonucu olmayan) eşsiz betimleyicilerden farklı olmak zorunda değildir. Eğer işleve belirtilen düğüm kümesi boşsa işlev boş dizge döndürür. Hiç argüman belirtilmemişse, bağlamsal düğüm öntanımlıdır.
nesne system-property(dizge) | İşlev |
Argüman bir NitelAd
olarak değerlendirilecek bir dizge olmalıdır. Bu NitelAd
ifadenin etki alanındaki isim-alanı bildirimleri kullanılarak bir isme genişletilir. system-property
işlevi bu isim tarafından betimlenen sistem gerecinin değeri olan nesne ile döner. Böyle bir sistem gereci yoksa boş dizge döner.
Gerçeklenimlerin aşağıdaki sistem gereçlerini hepsi XSLT isim-alanında yer alacak şekilde sağlamalıdırlar:
Üreticilerin XSLT isim-alanında başka sistem gereci tanımlamaması gerekir.
Önceki | Yukarı | Sonraki |
Değişkenler ve Değergeçler | Bir Linux Kitaplığı Sayfası | İletiler |