Sự khác biệt là giá trị của một xsl:param
có thể là được đặt bên ngoài ngữ cảnh được khai báo. Ví dụ, xem:
<xsl:template ...>
<xsl:param name="p" select="'x'" />
<xsl:variable name="v" select="'y'" />
...
sau đó bạn biết rằng $v
sẽ luôn luôn cung cấp cho bạn chuỗi 'y'
. Nhưng đối với $p
chuỗi 'x'
chỉ là một mặc định: bạn sẽ thấy một giá trị khác nhau nếu mẫu được gọi với một trong hai xsl:apply-templates
hoặc xsl:call-template
trong đó có một lệnh như:
<xsl:with-param name="p" select="'not x'" />
<xsl:param>
cũng có thể được sử dụng bên ngoài xsl:template
, ở cấp cao nhất trong biểu định kiểu. Giá trị của tham số như vậy có thể được đặt khi bộ xử lý XSLT được gọi. Làm thế nào điều này được thực hiện phụ thuộc vào bộ vi xử lý và cho dù bạn gọi nó từ dòng lệnh hoặc theo chương trình.