我沒有測試過很多,因爲您沒有提供樣本,但以下樣式表基於Identity transform可以找到工作。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- Identity transform - copy everything into output -->
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*" />
</xsl:copy>
</xsl:template>
<!-- for not-root xs:element ... -->
<xsl:template match="xs:element[ancestor::xs:complexType]">
<xsl:copy>
<!-- ... add minOccurs element ...-->
<xsl:attribute name="minOccurs">0</xsl:attribute>
<!-- ... and copy everything but not minOccurs attribute if any -->
<xsl:apply-templates select="node() | @*[not(name() = 'minOccurs')]" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
+1。不過你可以在''之前使用' '。這樣'@ * [not(name()='minOccurs')]'不再是必需的 - 指定兩次的屬性將覆蓋前一個。 –
Tomalak
你說得對 - 謝謝你的提示! –