2015-12-15 1 views
0

J'essaye de lire un fichier XML en utilisant l'étape MQ dans DS. Design - MQ -> XML Stage -> Seq FichierLire un fichier XML en utilisant MQ Stage dans Datastage 9.1

fichier XML utilisé -

<?xml version="1.0" encoding="UTF-8"?> 
<note> 
<to>Tove</to> 
<from>Jani</from> 
<heading>Reminder</heading> 
<body>Don't forget me this weekend!</body> 
</note> 

processus suivi -

1) Chargement MQ avec le fichier XML 2) Définie seulement 1 colonne de sortie contenant ce XML de l'étape MQ dans DS 3) Dans l'assemblage XML, en utilisant l'option 'String Set' 4) Fournir le fichier XSD dans Document Root 5) Option Strict Validation sélectionnée 6) Amener la source à la cible

Mais sa me jetant le ERROR- suivant

XML_1,0: 2015-12-14 09:43:40,801 Error [XML_Parser] [] Unable to parse the XML stream: <?xml version='1.0' encoding='UTF-8'?> 
2015-12-14 09:43:40,821 Error [XML_Parser] [] com.ibm.e2.xml.exceptions.XMLRuntimeException: CDIER0007E: An error occurred while reading input: language=XML, cause=javax.xml.stream.XMLStreamException: The root element is required in a well-formed document., systemId=null, line number=2, column number=1, step=XML_Parser, source=<?xml version='1.0' encoding='UTF-8'?>. 
XMLRuntimeException$FactoryImpl.errorWhenReadingXML() 13 
RuntimeNodeBase.consumeEvent() 752 
RuntimeNodeBase.consumeEventWithLogging() 2318 
RuntimeNodeBase.consumeAction() 482 
RuntimeNodeBase.execute() 339 
NodeExecutor.processOneEvent() 163 
XMLReaderUtils.runExecutorStreaming() 201 
XMLInputStreamingHandler.itemEnd() 44 
AbstractTraverser.handleEventForHandler() 663 
AbstractTraverser.handleEvent() 534 
ItemTraverser.handleCurrentState() 91 
AbstractTraverser.continueTraversal() 475 
AbstractTraverser.startTraversal() 463 
ItemTraverser.itemBegin() 122 
AbstractTraverser.handleEventForHandler() 668 
AbstractTraverser.handleEvent() 534 
VectorTraverser.handleCurrentState() 133 
AbstractTraverser.continueTraversal() 475 
AbstractTraverser.startTraversal() 463 
AbstractRuntimeFrame.runTraverser() 1426 
AbstractRuntimeFrame.runTraverser() 1409 
UserRuntimeOperatorAdapter.runTraverser() 138 
AbstractRuntimeOperator.runTraverser() 199 
AbstractXMLProviderRuntime.process() 254 
UserRuntimeOperatorFrame.process() 93 
OperatorController.callOperatorProcess() 314 
OperatorController.runOperator() 264 
OperatorController.doReadyToExecute() 168 
OperatorController.runDataStateTransistion() 123 
OperatorController.runTransitions() 85 
OperatorController.runOperatorStep() 63 
OperatorTask.runFrame() 86 
OperatorTask.execute() 40 
AbstractTask.run() 27 
ThreadPoolExecutor$Worker.runTask() 886 
ThreadPoolExecutor$Worker.run() 908 
Thread.run() 736 

Toute idée de ce qui est cela et comment pouvons-nous résoudre ce problème?

J'ai essayé de lire le même fichier XML en utilisant External Source Stage et le fichier a été analysé correctement et les données ont été chargées dans le fichier Seq. Donc, cela signifie que le fichier XML est correct et qu'il est conforme à la XSD.

Mais ce ne fonctionne pas avec le MQ .. Des suggestions ??

Répondre

0

Le fichier réel est-il semblable à celui présenté ci-dessus? (plusieurs lignes dans le fichier) Parce que le message d'erreur indique qu'il n'aime pas le CRLF (Carriage-Return Line-feed) ou LF (Line-feed) qui se trouvent dans le fichier. Essayez de supprimer les CRLF (ou LF).

à savoir

<?xml version="1.0" encoding="UTF-8"?><note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note> 

Ou peut-être qu'il veut un 'doctype' dans la ligne 2. à savoir

<!DOCTYPE note>