新しいXSDを取得するために、いくつかのテンプレートを使用して、大きなXSD処理を行っています。 最後のステップの1つでは、変数xsdresultに取り込まれたxml(実際にはXSD)の長さを調べたいと思います。xml構造体の文字列長
文字列長関数を使用すると、xsdresultの可変長と一致しない不思議な長さが表示されます。文字列/ xsdのサイズは52000文字を超えていますが、長さが表示されます:9862何が間違っていますか?
<!-- Catch output in variable -->
<xsl:variable name="xsdresult">
<xsl:call-template name="start"/>
</xsl:variable>
<xsl:template name="start">
<xsl:apply-templates/>
</xsl:template>
<!-- Build required doc parts -->
<xsl:variable name="docparts">
<xsl:call-template name="builddocparts"/>
</xsl:variable>
<xsl:template name="builddocparts">
Length: <xsl:value-of select="string-length(normalize-unicode($xsdresult))"/>
</xsl:template>
...
おそらく 'string-length'はすべての' text() 'ノードの長さの合計を返し、XSDのすべての要素と属性の文字を除外します。 – zx485
変数の値としてノードの結果ツリーフラグメント(XSLT 1.0)または一時ドキュメント(XSLT 2.0)がありますが、期待しているようなスキーマのシリアル化はありません。 –
[XSLT:XMLノードを文字列に変換する方法]の重複している可能性があります(http://stackoverflow.com/questions/6696382/xslt-how-to-convert-xml-node-to-string) – kjhughes