Ejemplo de COM: VBScript
Este ejemplo de código VBScript se divide en varias partes:
•Preparación e inicialización del objeto COM de RaptorXML
•Transformación XSLT y devolución del resultado en forma de cadena de texto
•Procesamiento de un documento XQuery y devolución del resultado en forma de archivo
•Preparación de la secuencia de ejecución del script y de su punto de entrada
dim objRaptor
' Inicializar el objeto COM de RaptorXML
sub Init
objRaptor = Null
On Error Resume Next
' Intentar cargar el objeto COM de 32 bits. No emitir excepciones si no se encuentra el objeto
Set objRaptor = WScript.GetObject( "", "RaptorXML.Server" )
On Error Goto 0
if ( IsNull( objRaptor ) ) then
' Intentar cargar el objeto COM de 64 bits (se emite una excepción si no se encuentra el objeto)
Set objRaptor = WScript.GetObject( "", "RaptorXML_x64.Server" )
end if
' Configurar el servidor: notificación de errores, nombre y puerto del servidor HTTP (IPv6 localhost en este ejemplo)
objRaptor.ErrorLimit = 1
objRaptor.ReportOptionalWarnings = true
objRaptor.ServerName = "::1"
objRaptor.ServerPort = 8087
end sub
sub ValidateXML
' Obtener una instancia del validador del objeto servidor
dim objXMLValidator
Set objXMLValidator = objRaptor.GetXMLValidator()
' Configurar los datos de entrada
objXMLValidator.InputFileName = "MiArchivoXML.xml"
' Validar; en caso de que el archivo no sea válido, notificar el problema devuelto por RaptorXML
if ( objXMLValidator.IsValid() ) then
MsgBox( "La cadena de entrada es válida" )
else
MsgBox( objXMLValidator.LastErrorMessage )
end if
end sub
' Realizar una transformación; devolver el resultado en forma de cadena de texto
sub RunXSLT
' Obtener una instancia del motor XSLT del objeto servidor
dim objXSLT
set objXSLT = objRaptor.GetXSLT
' Configurar los datos de entrada
objXSLT.InputXMLFileName = "MiArchivoXML.xml"
objXSLT.XSLFileName = "MiTransformación.xsl"
' Ejecutar la transformación; si finaliza correctamente, el resultado se devuelve. Si no, el motor devuelve una lista de errores
MsgBox( objXSLT.ExecuteAndGetResultAsString() )
end sub
' Ejecutar un XQuery; guardar el resultado en un archivo
sub RunXQuery
' Obtener una instancia del motor XQuery del objeto servidor
dim objXQ
set objXQ = objRaptor.GetXQuery()
' Configurar los datos de entrada
objXQ.InputXMLFileName = "MiArchivoXML.xml"
objXQ.XQueryFileName = "MiXQuery.xq"
' Configurar la serialización (opcional si quiere perfeccionar el formato del archivo de salida)
objXQ.OutputEncoding = "UTF8"
objXQ.OutputIndent = true
objXQ.OutputMethod = "xml"
objXQ.OutputOmitXMLDeclaration = false
' Ejecutar la consulta; el resultado se serializa en la ruta de acceso indicada
call objXQ.Execute( "MyQueryResult.xml" )
end sub
' Realizar todas las funciones de muestra
sub main
Init
ValidateXML
RunXSLT
RunXQuery
end sub
' Punto de entrada del script; ejecutar la función principal
main