Hook personalizzato per convalidare il contenuto tradotto in ingresso
CustomXMLValidationHook può convalidare il contenuto tradotto in ingresso ricevuto dai fornitori di traduzione con un file XML prima di importare il contenuto in Service Information Manager. Se la convalida ha esito positivo, il processo di importazione continua. Se la convalida genera un'eccezione, il processo di importazione della traduzione ha esito negativo e le informazioni dell'eccezione vengono aggiunte al file di log dell'errore di importazione. Oltre alla generazione dell'eccezione, il contenuto del package di traduzione non viene importato, anche nel caso in cui la convalida CustomXMLValidationHook di alcuni file del package abbia avuto esito positivo.
L'implementazione di questo hook richiede la specifica dei dettagli riportati di seguito.
• Indicare quando il processo Importa package traduzione deve considerarsi non riuscito - Al primo errore di convalida XML o dopo l'ultimo errore di convalida XML.
• Completare il messaggio di errore per i file che non hanno superato la convalida XML nel file di log di importazione.
Nel processo Importa package traduzione la convalida CustomXMLValidationHook avviene dopo che è stata verificata l'eventuale presenza nel package tradotto di contenuto del file XML in formato non valido, ma prima del Check-In del contenuto tradotto.
Interfaccia
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();
}
Vedere anche le implementazioni di esempio SampleCustomXMLValidationFailFastHookImpl.java e SampleCustomXMLValidationHookImpl.java fornite come riferimento, disponibili in $WT_HOME\codebase\com\ptc\tml\sample.
Registro
1. Utilizzare l'utilità xconfmanager per modificare
translation.service.properties.xconf. È inoltre possibile registrarlo nel file
components.service.properties in
<Windchill>/codebase/com/ptc/core/components. Per informazioni sull'utilizzo dell'utilità xconfmanager, vedere
Utilità di configurazione xconfmanager.
2. Aggiungere la proprietà riportata di seguito.
<Service context="default"
name="com.ptc.tml.validation.CustomXMLValidationHook">
<Option serviceClass="YourCustomXMLValidationHookClassName"
selector="null"/>
</Service>
3. Salvare il file.
4. Propagare le modifiche utilizzando l'utilità xconfmanager. Dalla directory <Windchill>\bin, immettere il comando indicato di seguito.
xconfmanager -pF
5. Riavviare il method server.