Xslt 2.0으로 변환하려는 xml (JUnit 테스트 결과)이 많습니다. 나는 현재 수행 할 net.sf.saxon.TransformerFactoryImpl
을 사용하고XSLT 변환 향상
XML 파일을 검색하는 내 XSLT에 과 fn:collection()
변환. 이처럼 :
<xsl:variable name="files" select="collection('file:///Users/admin/Documents/testxml/?select=*.xml;recurse=yes')"/>
<xsl:template match="testsuites">
<root>
<xsl:for-each select="$files//testsuites">
<xsl:call-template name="summary"/>
</xsl:for-each>
</root>
</xsl:template>
나에게 문제를 일으킬 2 점 있습니다 :
첫 번째는 자바 트랜스포머, 나는 XML "소스"를 통과해야하지만, 난 정말 해달라고 내 때문에 필요합니다. xsl은 xml 검색 및 나열을 수행합니다.
초는 10 개 (어쩌면 8 또는 7) xml의 변환을 실행할 때 JVM 힙 공간이 꽉 찼습니다. 나는 heap size를 올릴 수 있지만 변환을 거의 300 xml 적용해야하므로 효율적이지는 않을 것입니다.
변환 할 수있는 XML의 수를 늘리려면 어떻게해야합니까?
감사
편집 :
나는이 같은 saxon:discard-document()
를 사용하려고 해요 :
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:saxon="http://saxon.sf.net/">
<xsl:output method="xml" indent="yes"/>
<xsl:variable name="files" select="collection('file:///Users/admin/Documents/testxml/?select=*.xml;recurse=yes')"/>
<xsl:template match="testsuites">
<root>
<xsl:for-each select="for $x in ($files//testsuites)return saxon:discard-document($x)">
<xsl:call-template name="summary"/>
</xsl:for-each>
</root>
</xsl:template>
하지만 난 여전히 내 힙 공간 오류를 얻고있다. 내가 뭔가 잘못하고 있는거야?
Kay, Saxon의 저자 인 Dr. Kay는 실제로 아래 답변했습니다. Saxon 관련 질문에 대한 최상의 결과를 얻으려면'saxon-help @ lists.sourceforge.net'가 더 나은 자료라는 것을 알 수 있습니다. 케이 (Kay) 박사와 앤드류 웰치 (Andrew Welch) (블로그의 저자)는 모두 그곳에서 활동적입니다. – lavinio