Я думал, что это должно быть просто найти, но после некоторых поисков я обнаружил, что было бы неплохо четко определить это.
В моем XSD я определил перечисление, полученное из строки. В сложном типе я определил и атрибут, который ссылается на это перечисление, со значением по умолчанию.
В моем XSL я хочу отображать значение этого атрибута по умолчанию для элементов, атрибут которых не задан явно.
XSD:
<xs:complexType name="foo">
<xs:attribute name="bar" type="responsecodes:barType" default="default"/>
</xs:complexType>
<xs:simpleType name="barType">
<xs:restriction base="xs:string">
<xs:enumeration value="default">
<xs:annotation>
<xs:documentation xml:lang="en-us">Default bar.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="chocolate">
<xs:annotation>
<xs:documentation xml:lang="en-us">A chocolate ...bar</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
XML:
....
<foo/>
<foo bar="default"/>
<foo bar="chocolate"/>
....
Я ожидаю, что XSL будет: (более или менее)
<ol>
<xsl:for-each select="/foo">
<li>BarType: '<xsl:value-of select="@bar" />'</li>
</xsl:for-each>
</ol>
Теперь, когда я отображаю этот XML-файл стиля, значение атрибута «bar» пусто для неуказанного значения, в то время как я хотел бы отобразить (или выбрать) значение по умолчанию.
В настоящее время:
- БарТип: ''
- БарТип: «по умолчанию»
- BarType: 'шоколад'
Желанный:
- БарТип: «по умолчанию»
- БарТип: «по умолчанию»
- BarType: 'шоколад'
Теперь это должно быть довольно просто, не так ли?