要素、属性、属性の値、要素の内容の生成

{ }のある指定とない指定のちがいを、もう一度考えてみること。
【sample011.xml】
<?xml version="1.0" encoding="Shift_JIS" ?>
<?xml-stylesheet href="sample011.xsl" type="text/xsl" ?>

<要素>
<要素1 要素名="h1" 属性名="style" 要素の内容="見出し1" 属性の値="color:red;"></要素1>
<要素2 要素名="h2" 属性名="style" 要素の内容="見出し2" 属性の値="color:green;"></要素2>
<要素3 要素名="h3" 属性名="style" 要素の内容="見出し3" 属性の値="color:blue;"></要素3>
<要素4 要素名="h4" 属性名="style" 要素の内容="見出し4" 属性の値="color:black;"></要素4>
<要素5 要素名="h5" 属性名="style" 要素の内容="見出し5" 属性の値="color:lime;"></要素5>
<要素6 要素名="h6" 属性名="style" 要素の内容="見出し6" 属性の値="color:orange;"></要素6>
</要素>

【sample011.xsl】
<?xml version="1.0" encoding="Shift_JIS" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="Shift_JIS" />

<xsl:template match="要素">
	<html>
	<head><title>要素、属性、属性の値、要素の内容の生成</title></head>
	<body>
	<h2>要素、属性、属性の値、要素の内容の生成</h2>

	<xsl:element name="{要素1/@要素名}">
		<xsl:attribute name="{要素1/@属性名}">
			<xsl:value-of select="要素1/@属性の値"/>
		</xsl:attribute>
		<xsl:value-of select="要素1/@要素の内容"/>
	</xsl:element>

	<xsl:element name="{要素2/@要素名}">
		<xsl:attribute name="{要素2/@属性名}">
			<xsl:value-of select="要素2/@属性の値"/>
		</xsl:attribute>
		<xsl:value-of select="要素2/@要素の内容"/>
	</xsl:element>

	<xsl:element name="{要素3/@要素名}">
		<xsl:attribute name="{要素3/@属性名}">
			<xsl:value-of select="要素3/@属性の値"/>
		</xsl:attribute>
		<xsl:value-of select="要素3/@要素の内容"/>
	</xsl:element>

	<xsl:element name="{要素4/@要素名}">
		<xsl:attribute name="{要素4/@属性名}">
			<xsl:value-of select="要素4/@属性の値"/>
		</xsl:attribute>
		<xsl:value-of select="要素4/@要素の内容"/>
	</xsl:element>

	<xsl:element name="{要素5/@要素名}">
		<xsl:attribute name="{要素5/@属性名}">
			<xsl:value-of select="要素5/@属性の値"/>
		</xsl:attribute>
		<xsl:value-of select="要素5/@要素の内容"/>
	</xsl:element>

	<xsl:element name="{要素6/@要素名}">
		<xsl:attribute name="{要素6/@属性名}">
			<xsl:value-of select="要素6/@属性の値"/>
		</xsl:attribute>
		<xsl:value-of select="要素6/@要素の内容"/>
	</xsl:element>

	</body>
	</html>
</xsl:template>

</xsl:stylesheet>


【結果】