自定义挂接以验证传入翻译内容
CustomXMLValidationHook 可以在将内容导入至 Service Information Manager 之前,验证从翻译供应商以 XML 文件形式接收的传入翻译内容。如果验证成功,则继续导入进程。如果验证发生异常,则 SIM 翻译的导入进程将失败,并会将异常信息添加到导入失败日志文件中。除了异常情况以外,不会导入翻译包的内容,即使翻译包包含可能已通过 CustomXMLValidationHook 验证的任何文件,亦是如此。
实施此挂接需要指定以下详细信息:
• 声明“导入翻译包”进程失败的时间 - 第一个 XML 验证失败时,或最后一个 XML 验证失败后。
• 在导入日志文件中为 XML 验证失败的文件填充错误消息。
在“导入翻译包”进程中,CustomXMLValidationHook 验证将在检查翻译包的 XML 文件内容格式错误后、检入已翻译内容之前进行。
界面
package com.ptc.tml.validation;
import java.io.InputStream;
/**The interface provides the custom XML validation service for the translation *contents. The interface receives the file name and input stream of the file which is to be validated for the XML and need to throw the exception to indicate the XML validation
*failure for given file. The implementation must state whether the Import Translation Process should fail if the first XML validation failure has *encountered or after the last XML validation failure. The implementation also needs to populate the error message
*for failed XML validation for logging purpose.
*/
public interface CustomXMLValidationHook {
/**
* @return boolean Boolean value to indicate whether the translation process should be failed when the first XML validation failure is encountered
*/
public boolean failOnFirstError();
/**
* @param fileName Name of file in the translation zip to validated for XML
* @param is InputStream of the file to be validated for XML
* @throws TranslationException
*/
public void validateXML (String fileName, InputStream is) throws TranslationException;
/**
* @return Error message to be logged for XML validation failures
*/
public String getErrorMessage();
}
另请参阅 SampleCustomXMLValidationFailFastHookImpl.java 和 SampleCustomXMLValidationHookImpl.java,查看供参考的示例实施。其位于 $WT_HOME\codebase\com\ptc\tml\sample。
注册表
1. 使用 xconfmanager 实用程序以编辑
translation.service.properties.xconf。您也可以将其注册到位于
<Windchill>/codebase/com/ptc/core/components 的
components.service.properties 文件中。有关使用 xconfmanager 实用程序的详细信息,请参阅
关于 xconfmanager 实用程序。
2. 添加以下特性:
<Service context="default"
name="com.ptc.tml.validation.CustomXMLValidationHook">
<Option serviceClass="YourCustomXMLValidationHookClassName"
selector="null"/>
</Service>
3. 保存文件。
4. 使用 xconfmanager 实用程序传播您的更改。从 <Windchill>\bin 目录中,输入以下命令:
xconfmanager -pF
5. 重新启动方法服务器。