我有一个名为Dictionary.xml的文件
<?xml version="1.0" encoding="UTF-8"?>
<DICTIONARY SNAPSHOT_DATE="30.07.2014 17:55:37" SNAPSHOT_CREATOR="XYZ" MODULE="Core" MODULE_VERSION_FROM="ALL" MODULE_VERSION_UNTIL="1.04">
<DICT_ENTRY DICT_ID="58384" VARIANT_ID="13692" STATUS="NEW">
<LANG_ENTRY LANG_ID="EN" STATUS="PROOFED"><![CDATA[Reset target]]></LANG_ENTRY>
</DICT_ENTRY>
... snip...
</DICTIONARY>
我尝试在我的XSLT中使用它
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fn="w3.org/2005/xpath-functions" xmlns:xs="w3.org/2001/XMLSchema" exclude-result-prefixes="xs fn">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:param name="dictionary_file">Dictionary.xml</xsl:param>
<xsl:variable name="dictstrings" select="document($dictionary_file)"/>
... snip...
</xsl:stylesheet>
这会产生错误(在Altova XMLSpy Professional Edition v2012 sp1中)
XTDE1170: Error in XPath 2.0 expression
Error retrieving resource 'Dictionary.xml'
但是,如果我简化了Dictionary.xml的内容,那么它就是
<?xml version="1.0" encoding="UTF-8"?>
<DICTIONARY>
<DICT_ENTRY DICT_ID="58384">
<LANG_ENTRY>Reset target</LANG_ENTRY>
</DICT_ENTRY>
... snip ...
</DICTIONARY>
然后加载并使用Dictionary.xml的内容。
我假设有一些关于原始Dictionary.xml的格式,它并不喜欢。你知道吗?或者还有其他问题我在这里没有确定?
编辑:或者更确切地说,你是否有一个很好的建议,我如何制作一些XSLT,以便我的用户可以运行XSLT样式表,使用原始格式的未更改的字典文件? (感谢其他编辑。)