attribute-set
Syntax
attribute-set attribute-set-name {;
attribute attribute-name1 { attribute-value1; }
attribute attribute-name2 { attribute-value2; }
use-attribute-sets attribute-set-name2;
...
}Description
Define a collection of attributes that can be used
repeatedly. The attribute-set statement
must be defined as a top-level statement in the script. The attribute
set name is a string argument. The attribute set contents define the
attributes to include in the collection. The contents can include
individual attribute statements, which
define attributes as a name and value pair, and they can include use-attribute-sets statements, which add the attributes
from a previously defined attribute set to the current set.
To apply the attributes in an attribute set to a specific element,
include the use-attribute-sets statement
under that element and reference the attribute set name.
Attributes
attribute-set-name |
Name of the attribute set,
which must be a string. To add the attribute set to an element, reference
this name in the |
attribute-name |
Name of the individual attribute to add to the set. |
attribute-value |
A block of statements enclosed in curly braces that defines the attribute value. |
SLAX Example
The following example creates two attribute sets: table-attributes and table-attributes-ext. The table-attributes-ext set includes
all of the attributes that are already defined in the table-attributes set through use of the use-attributes-sets statement. In the main script body,
the table-attributes-ext attribute set
is applied to the <table> element. The <table> element includes the four attributes: order, cellpadding, cellspacing, and border.
version 1.1;
var $cellpadding = "0";
var $cellspacing = "10";
attribute-set table-attributes {
attribute "order" { expr "0"; }
attribute "cellpadding" { expr $cellpadding; }
attribute "cellspacing" { expr $cellspacing; }
}
attribute-set table-attributes-ext {
use-attribute-sets table-attributes;
attribute "border" { expr "0"; }
}
match / {
...
<table> {
use-attribute-sets table-attributes-ext;
}
}XSLT Equivalent
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:variable name="cellpadding" select="0"/>
<xsl:variable name="cellspacing" select="10"/>
<xsl:attribute-set name="table-attributes">
<xsl:attribute name="order">
<xsl:text>0</xsl:text>
</xsl:attribute>
<xsl:attribute name="cellpadding">
<xsl:value-of select="$cellpadding"/>
</xsl:attribute>
<xsl:attribute name="cellspacing">
<xsl:value-of select="$cellspacing"/>
</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="table-attributes-ext"
use-attribute-sets="table-attributes">
<xsl:attribute name="border">
<xsl:text>0</xsl:text>
</xsl:attribute>
</xsl:attribute-set>
<xsl:template match="/">
<table use-attribute-sets="table-attributes-ext"/>
</xsl:template>
</xsl:stylesheet>Release Information
Statement introduced in version 1.1 of the SLAX language, which is supported in Junos OS Release 12.2 and later releases.