Thread: [Servingxml-help] Xml to flat error
Brought to you by:
danielaparker
From: Harold F. <har...@gm...> - 2006-12-13 19:43:12
|
Hello, I am trying to use the conversion from an Xml Document into a CVS flat file. I am getting an error that I am not sure where it comes from. It is related to a well-formed character or markup, but the Xml document I am using is well formed. I am attaching the xml file, serving xml resource and error message. Thanks in advance guys for any help in this matter. <?xml version="1.0" encoding="utf-8"?> <sx:resources xmlns:sx="http://www.servingxml.com/core"> <sx:service id="fromXmlToESGFile" > <sx:recordStream> <sx:xmlRecordReader> <sx:inverseRecordMapping ref="ESG_USG_V10_FileMapping" /> <sx:transform> <sx:document /> </sx:transform> </sx:xmlRecordReader> <sx:flatFileWriter> <sx:flatFile ref="ESG_USG_V10_File" /> </sx:flatFileWriter> </sx:recordStream> </sx:service> <sx:flatFile id="ESG_USG_V10_File" > <sx:flatFileBody> <sx:flatRecordType ref="DocumentInfoType" /> </sx:flatFileBody> </sx:flatFile> <sx:flatRecordType id="DocumentInfoType" name="DocumentInfoType" > <sx:fieldDelimiter value="," /> <sx:delimitedField name="RecordIndicator"/> <sx:delimitedField name="DocumentId" /> <sx:delimitedField name="DocumentDate" /> <sx:delimitedField name="DocumentTime" /> <sx:delimitedField name="OriginatorDUNS" /> <sx:delimitedField name="OriginatorName" /> <sx:delimitedField name="RecipientDUNS" /> <sx:delimitedField name="RecipientName" /> <sx:delimitedField name="VersionNumber" /> <sx:delimitedField name="ExternalDocumentId" /> <sx:delimitedField name="PriorityCode" /> <sx:delimitedField name="RecordType" /> </sx:flatRecordType> <sx:inverseRecordMapping id="ESG_USG_V10_FileMapping" > <sx:onSubtree path="/ESG_USG_V10/DocumentInfo" > <sx:subtreeRecordMap recordType="DocumentInfo" > <sx:subtreeFieldMap select="1" field="RecordIndicator" /> <sx:subtreeFieldMap select="2" field="DocumentId" /> <sx:subtreeFieldMap select="3" field="DocumentDate" /> <sx:subtreeFieldMap select="4" field="DocumentTime" /> <sx:subtreeFieldMap select="5" field="OriginatorDUNS" /> <sx:subtreeFieldMap select="6" field="OriginatorName" /> <sx:subtreeFieldMap select="7" field="RecipientDUNS" /> <sx:subtreeFieldMap select="8" field="RecipientName" /> <sx:subtreeFieldMap select="9" field="VersionNumber" /><!-- <sx:subtreeFieldMap select="10" field="ExternalDocumentId" /> <sx:subtreeFieldMap select="11" field="PriorityCode" /> <sx:subtreeFieldMap select="12" field="RecordType" /> --></sx:subtreeRecordMap> </sx:onSubtree> </sx:inverseRecordMapping> </sx:resources> Source: <ESG_USG_V10><DocumentInfo><1>H</1><2>2006081205230112006933519</2><3>01929300</3><4>05:23:01:12</4><5>006933519</5><6>AMEREN IP</6><7>999999999</7><8>SAMPLE MARKETER</8><9>1.0 </9><10/><11/><12/></DocumentInfo></ESG_USG_V10> Error: [Fatal Error] com.servingxml.io.cache.DefaultKey3:1:29: The content of elements must consist of well-formed character data or markup. * com.servingxml.util.ServingXmlException*: The content of elements must consist of well-formed character data or markup. at com.servingxml.components.xmlpipeline.MainPipeline.execute(* MainPipeline.java:118*) at com.servingxml.components.inverserecordmapping.XmlRecordReader.readRecords(* XmlRecordReader.java:94*) at com.servingxml.components.recordio.DefaultRecordPipeline.execute(* DefaultRecordPipeline.java:87*) at com.servingxml.components.recordio.RecordStreamBuilder.execute(* RecordStreamBuilder.java:75*) at com.servingxml.components.service.ServiceImpl.execute(*ServiceImpl.java :61*) at com.bluestarenergy.edi.service.common.RecordTransformerServiceImpl.transformRecord (*RecordTransformerServiceImpl.java:83*) at com.bluestarenergy.edi.component.usage.ECInfoUsageFileReader.readFile(* ECInfoUsageFileReader.java:43*) at sun.reflect.NativeMethodAccessorImpl.invoke0(*Native Method*) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.mule.model.DynamicEntryPoint.invokeCurrent(*DynamicEntryPoint.java :260*) at org.mule.model.DynamicEntryPoint.invoke(*DynamicEntryPoint.java:171*) at org.mule.impl.DefaultLifecycleAdapter.intercept(* DefaultLifecycleAdapter.java:202*) at org.mule.impl.InterceptorsInvoker.execute(*InterceptorsInvoker.java:51*) at org.mule.interceptors.InterceptorStack$Invoc.execute(* InterceptorStack.java:73*) at org.mule.interceptors.TimerInterceptor.intercept(*TimerInterceptor.java :42*) at org.mule.interceptors.InterceptorStack$Invoc.execute(* InterceptorStack.java:68*) at org.mule.interceptors.EnvelopeInterceptor.intercept(* EnvelopeInterceptor.java:44*) at org.mule.interceptors.InterceptorStack$Invoc.execute(* InterceptorStack.java:68*) at org.mule.interceptors.InterceptorStack.intercept(*InterceptorStack.java :48*) at org.mule.impl.InterceptorsInvoker.execute(*InterceptorsInvoker.java:51*) at org.mule.impl.model.DefaultMuleProxy.onCall(*DefaultMuleProxy.java:258*) at org.mule.impl.model.seda.SedaComponent.doSend(*SedaComponent.java:328*) at org.mule.impl.model.AbstractComponent.sendEvent(*AbstractComponent.java :415*) at org.mule.impl.MuleSession.sendEvent(*MuleSession.java:352*) at org.mule.routing.inbound.InboundMessageRouter.send(* InboundMessageRouter.java:181*) at org.mule.routing.inbound.InboundMessageRouter.route(* InboundMessageRouter.java:147*) at org.mule.providers.AbstractMessageReceiver$DefaultInternalMessageListener.onMessage (*AbstractMessageReceiver.java:559*) at org.mule.providers.AbstractMessageReceiver.routeMessage(* AbstractMessageReceiver.java:305*) at org.mule.providers.AbstractMessageReceiver.routeMessage(* AbstractMessageReceiver.java:244*) at org.mule.providers.file.FileMessageReceiver.processFile(* FileMessageReceiver.java:198*) at org.mule.providers.file.FileMessageReceiver.poll(* FileMessageReceiver.java:106*) at org.mule.providers.PollingMessageReceiver.run(* PollingMessageReceiver.java:71*) at org.mule.impl.work.WorkerContext.run(*WorkerContext.java:317*) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask (*ThreadPoolExecutor.java:650*) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run (*ThreadPoolExecutor.java:675*) at java.lang.Thread.run(Unknown Source) -------------------- The content of elements must consist of well-formed character data or markup. * org.xml.sax.SAXParseException*: The content of elements must consist of well-formed character data or markup. at org.apache.xerces.parsers.AbstractSAXParser.parse(*AbstractSAXParser.java :1183*) at com.servingxml.io.saxsource.StreamXmlReaderAdaptor.parse(* StreamXmlReaderAdaptor.java:119*) at com.servingxml.components.xmlpipeline.MainPipeline.execute(* MainPipeline.java:109*) at com.servingxml.components.inverserecordmapping.XmlRecordReader.readRecords(* XmlRecordReader.java:94*) at com.servingxml.components.recordio.DefaultRecordPipeline.execute(* DefaultRecordPipeline.java:87*) at com.servingxml.components.recordio.RecordStreamBuilder.execute(* RecordStreamBuilder.java:75*) at com.servingxml.components.service.ServiceImpl.execute(*ServiceImpl.java :61*) at com.bluestarenergy.edi.service.common.RecordTransformerServiceImpl.transformRecord (*RecordTransformerServiceImpl.java:83*) at com.bluestarenergy.edi.component.usage.ECInfoUsageFileReader.readFile(* ECInfoUsageFileReader.java:43*) at sun.reflect.NativeMethodAccessorImpl.invoke0(*Native Method*) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.mule.model.DynamicEntryPoint.invokeCurrent(*DynamicEntryPoint.java :260*) at org.mule.model.DynamicEntryPoint.invoke(*DynamicEntryPoint.java:171*) at org.mule.impl.DefaultLifecycleAdapter.intercept(* DefaultLifecycleAdapter.java:202*) at org.mule.impl.InterceptorsInvoker.execute(*InterceptorsInvoker.java:51*) at org.mule.interceptors.InterceptorStack$Invoc.execute(* InterceptorStack.java:73*) at org.mule.interceptors.TimerInterceptor.intercept(*TimerInterceptor.java :42*) at org.mule.interceptors.InterceptorStack$Invoc.execute(* InterceptorStack.java:68*) at org.mule.interceptors.EnvelopeInterceptor.intercept(* EnvelopeInterceptor.java:44*) at org.mule.interceptors.InterceptorStack$Invoc.execute(* InterceptorStack.java:68*) at org.mule.interceptors.InterceptorStack.intercept(*InterceptorStack.java :48*) at org.mule.impl.InterceptorsInvoker.execute(*InterceptorsInvoker.java:51*) at org.mule.impl.model.DefaultMuleProxy.onCall(*DefaultMuleProxy.java:258*) at org.mule.impl.model.seda.SedaComponent.doSend(*SedaComponent.java:328*) at org.mule.impl.model.AbstractComponent.sendEvent(*AbstractComponent.java :415*) at org.mule.impl.MuleSession.sendEvent(*MuleSession.java:352*) at org.mule.routing.inbound.InboundMessageRouter.send(* InboundMessageRouter.java:181*) at org.mule.routing.inbound.InboundMessageRouter.route(* InboundMessageRouter.java:147*) at org.mule.providers.AbstractMessageReceiver$DefaultInternalMessageListener.onMessage (*AbstractMessageReceiver.java:559*) at org.mule.providers.AbstractMessageReceiver.routeMessage(* AbstractMessageReceiver.java:305*) at org.mule.providers.AbstractMessageReceiver.routeMessage(* AbstractMessageReceiver.java:244*) at org.mule.providers.file.FileMessageReceiver.processFile(* FileMessageReceiver.java:198*) at org.mule.providers.file.FileMessageReceiver.poll(* FileMessageReceiver.java:106*) at org.mule.providers.PollingMessageReceiver.run(* PollingMessageReceiver.java:71*) at org.mule.impl.work.WorkerContext.run(*WorkerContext.java:317*) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask (*ThreadPoolExecutor.java:650*) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run (*ThreadPoolExecutor.java:675*) at java.lang.Thread.run(Unknown Source) |
From: Daniel P. <dan...@sy...> - 2006-12-14 02:30:08
|
Harold, The error message is correct, the XML is invalid. Element names cannot = start with numbers. Change 1,2,3... to a,b,c... and it will work. Regards, Daniel Parker ----- Original Message -----=20 From: Harold Flores=20 To: ser...@li...=20 Sent: Wednesday, December 13, 2006 2:43 PM Subject: [Servingxml-help] Xml to flat error Hello, I am trying to use the conversion from an Xml Document into a CVS flat = file. I am getting an error that I am not sure where it comes from. It = is related to a well-formed character or markup, but the Xml document I = am using is well formed. I am attaching the xml file, serving xml = resource and error message. Thanks in advance guys for any help in this = matter.=20 <?xml version=3D"1.0" encoding=3D"utf-8"?> <sx:resources xmlns:sx=3D"http://www.servingxml.com/core"> <sx:service id=3D"fromXmlToESGFile" >=20 <sx:recordStream> <sx:xmlRecordReader> <sx:inverseRecordMapping ref=3D"ESG_USG_V10_FileMapping" /> <sx:transform> <sx:document /> </sx:transform> </sx:xmlRecordReader>=20 <sx:flatFileWriter> <sx:flatFile ref=3D"ESG_USG_V10_File" /> </sx:flatFileWriter> </sx:recordStream> </sx:service> <sx:flatFile id=3D"ESG_USG_V10_File" >=20 <sx:flatFileBody> <sx:flatRecordType ref=3D"DocumentInfoType" /> </sx:flatFileBody> </sx:flatFile> <sx:flatRecordType id=3D"DocumentInfoType" name=3D"DocumentInfoType" > = <sx:fieldDelimiter value=3D"," /> <sx:delimitedField name=3D"RecordIndicator"/> <sx:delimitedField name=3D"DocumentId" /> <sx:delimitedField name=3D"DocumentDate" />=20 <sx:delimitedField name=3D"DocumentTime" /> <sx:delimitedField name=3D"OriginatorDUNS" /> <sx:delimitedField name=3D"OriginatorName" /> <sx:delimitedField name=3D"RecipientDUNS" />=20 <sx:delimitedField name=3D"RecipientName" /> <sx:delimitedField name=3D"VersionNumber" /> <sx:delimitedField name=3D"ExternalDocumentId" /> <sx:delimitedField name=3D"PriorityCode" />=20 <sx:delimitedField name=3D"RecordType" /> </sx:flatRecordType> <sx:inverseRecordMapping id=3D"ESG_USG_V10_FileMapping" > <sx:onSubtree path=3D"/ESG_USG_V10/DocumentInfo" >=20 <sx:subtreeRecordMap recordType=3D"DocumentInfo" > <sx:subtreeFieldMap select=3D"1" field=3D"RecordIndicator" /> <sx:subtreeFieldMap select=3D"2" field=3D"DocumentId" />=20 <sx:subtreeFieldMap select=3D"3" field=3D"DocumentDate" /> <sx:subtreeFieldMap select=3D"4" field=3D"DocumentTime" /> <sx:subtreeFieldMap select=3D"5" field=3D"OriginatorDUNS" />=20 <sx:subtreeFieldMap select=3D"6" field=3D"OriginatorName" /> <sx:subtreeFieldMap select=3D"7" field=3D"RecipientDUNS" /> <sx:subtreeFieldMap select=3D"8" field=3D"RecipientName" />=20 <sx:subtreeFieldMap select=3D"9" field=3D"VersionNumber" /><!-- <sx:subtreeFieldMap select=3D"10" field=3D"ExternalDocumentId" /> <sx:subtreeFieldMap select=3D"11" field=3D"PriorityCode" />=20 <sx:subtreeFieldMap select=3D"12" field=3D"RecordType" /> --></sx:subtreeRecordMap> </sx:onSubtree> </sx:inverseRecordMapping> </sx:resources> Source: = <ESG_USG_V10><DocumentInfo><1>H</1><2>2006081205230112006933519</2><3>019= 29300</3><4>05:23:01:12</4><5>006933519</5><6>AMEREN = IP</6><7>999999999</7><8>SAMPLE MARKETER</8><9> = 1.0</9><10/><11/><12/></DocumentInfo></ESG_USG_V10> Error: [Fatal Error] com.servingxml.io.cache.DefaultKey3:1:29: The content of = elements must consist of well-formed character data or markup. =20 com.servingxml.util.ServingXmlException : The content of elements must consist of well-formed character data = or markup.=20 at com.servingxml.components.xmlpipeline.MainPipeline.execute( MainPipeline.java:118)=20 at = com.servingxml.components.inverserecordmapping.XmlRecordReader.readRecord= s( XmlRecordReader.java:94)=20 at com.servingxml.components.recordio.DefaultRecordPipeline.execute( DefaultRecordPipeline.java:87)=20 at com.servingxml.components.recordio.RecordStreamBuilder.execute( RecordStreamBuilder.java:75)=20 at com.servingxml.components.service.ServiceImpl.execute( ServiceImpl.java:61)=20 at = com.bluestarenergy.edi.service.common.RecordTransformerServiceImpl.transf= ormRecord( RecordTransformerServiceImpl.java:83 )=20 at = com.bluestarenergy.edi.component.usage.ECInfoUsageFileReader.readFile( ECInfoUsageFileReader.java:43)=20 at sun.reflect.NativeMethodAccessorImpl.invoke0( Native Method)=20 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.mule.model.DynamicEntryPoint.invokeCurrent( DynamicEntryPoint.java:260)=20 at org.mule.model.DynamicEntryPoint.invoke( DynamicEntryPoint.java:171)=20 at org.mule.impl.DefaultLifecycleAdapter.intercept( DefaultLifecycleAdapter.java:202)=20 at org.mule.impl.InterceptorsInvoker.execute( InterceptorsInvoker.java:51)=20 at org.mule.interceptors.InterceptorStack$Invoc.execute( InterceptorStack.java:73)=20 at org.mule.interceptors.TimerInterceptor.intercept( TimerInterceptor.java:42)=20 at org.mule.interceptors.InterceptorStack$Invoc.execute( InterceptorStack.java:68)=20 at org.mule.interceptors.EnvelopeInterceptor.intercept( EnvelopeInterceptor.java:44)=20 at org.mule.interceptors.InterceptorStack$Invoc.execute( InterceptorStack.java:68)=20 at org.mule.interceptors.InterceptorStack.intercept( InterceptorStack.java:48)=20 at org.mule.impl.InterceptorsInvoker.execute( InterceptorsInvoker.java:51)=20 at org.mule.impl.model.DefaultMuleProxy.onCall( DefaultMuleProxy.java:258)=20 at org.mule.impl.model.seda.SedaComponent.doSend( SedaComponent.java:328)=20 at org.mule.impl.model.AbstractComponent.sendEvent( AbstractComponent.java:415)=20 at org.mule.impl.MuleSession.sendEvent( MuleSession.java:352)=20 at org.mule.routing.inbound.InboundMessageRouter.send( InboundMessageRouter.java:181)=20 at org.mule.routing.inbound.InboundMessageRouter.route( InboundMessageRouter.java:147)=20 at = org.mule.providers.AbstractMessageReceiver$DefaultInternalMessageListener= .onMessage( AbstractMessageReceiver.java:559 )=20 at org.mule.providers.AbstractMessageReceiver.routeMessage( AbstractMessageReceiver.java:305)=20 at org.mule.providers.AbstractMessageReceiver.routeMessage( AbstractMessageReceiver.java:244)=20 at org.mule.providers.file.FileMessageReceiver.processFile( FileMessageReceiver.java:198)=20 at org.mule.providers.file.FileMessageReceiver.poll( FileMessageReceiver.java:106)=20 at org.mule.providers.PollingMessageReceiver.run( PollingMessageReceiver.java:71)=20 at org.mule.impl.work.WorkerContext.run( WorkerContext.java:317)=20 at = edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.= runTask( ThreadPoolExecutor.java:650)=20 at = edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.= run( ThreadPoolExecutor.java:675)=20 at java.lang.Thread.run(Unknown Source) -------------------- The content of elements must consist of well-formed character data or = markup. =20 org.xml.sax.SAXParseException : The content of elements must consist of well-formed character data = or markup.=20 at org.apache.xerces.parsers.AbstractSAXParser.parse( AbstractSAXParser.java:1183)=20 at com.servingxml.io.saxsource.StreamXmlReaderAdaptor.parse( StreamXmlReaderAdaptor.java:119)=20 at com.servingxml.components.xmlpipeline.MainPipeline.execute( MainPipeline.java:109)=20 at = com.servingxml.components.inverserecordmapping.XmlRecordReader.readRecord= s( XmlRecordReader.java:94)=20 at com.servingxml.components.recordio.DefaultRecordPipeline.execute( DefaultRecordPipeline.java:87)=20 at com.servingxml.components.recordio.RecordStreamBuilder.execute( RecordStreamBuilder.java:75)=20 at com.servingxml.components.service.ServiceImpl.execute( ServiceImpl.java:61)=20 at = com.bluestarenergy.edi.service.common.RecordTransformerServiceImpl.transf= ormRecord( RecordTransformerServiceImpl.java:83 )=20 at = com.bluestarenergy.edi.component.usage.ECInfoUsageFileReader.readFile( ECInfoUsageFileReader.java:43)=20 at sun.reflect.NativeMethodAccessorImpl.invoke0( Native Method)=20 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.mule.model.DynamicEntryPoint.invokeCurrent( DynamicEntryPoint.java:260)=20 at org.mule.model.DynamicEntryPoint.invoke( DynamicEntryPoint.java:171)=20 at org.mule.impl.DefaultLifecycleAdapter.intercept( DefaultLifecycleAdapter.java:202)=20 at org.mule.impl.InterceptorsInvoker.execute( InterceptorsInvoker.java:51)=20 at org.mule.interceptors.InterceptorStack$Invoc.execute( InterceptorStack.java:73)=20 at org.mule.interceptors.TimerInterceptor.intercept( TimerInterceptor.java:42)=20 at org.mule.interceptors.InterceptorStack$Invoc.execute( InterceptorStack.java:68)=20 at org.mule.interceptors.EnvelopeInterceptor.intercept( EnvelopeInterceptor.java:44)=20 at org.mule.interceptors.InterceptorStack$Invoc.execute( InterceptorStack.java:68)=20 at org.mule.interceptors.InterceptorStack.intercept( InterceptorStack.java:48)=20 at org.mule.impl.InterceptorsInvoker.execute( InterceptorsInvoker.java:51)=20 at org.mule.impl.model.DefaultMuleProxy.onCall( DefaultMuleProxy.java:258)=20 at org.mule.impl.model.seda.SedaComponent.doSend( SedaComponent.java:328)=20 at org.mule.impl.model.AbstractComponent.sendEvent( AbstractComponent.java:415)=20 at org.mule.impl.MuleSession.sendEvent( MuleSession.java:352)=20 at org.mule.routing.inbound.InboundMessageRouter.send( InboundMessageRouter.java:181)=20 at org.mule.routing.inbound.InboundMessageRouter.route( InboundMessageRouter.java:147)=20 at = org.mule.providers.AbstractMessageReceiver$DefaultInternalMessageListener= .onMessage( AbstractMessageReceiver.java:559 )=20 at org.mule.providers.AbstractMessageReceiver.routeMessage( AbstractMessageReceiver.java:305)=20 at org.mule.providers.AbstractMessageReceiver.routeMessage( AbstractMessageReceiver.java:244)=20 at org.mule.providers.file.FileMessageReceiver.processFile( FileMessageReceiver.java:198)=20 at org.mule.providers.file.FileMessageReceiver.poll( FileMessageReceiver.java:106)=20 at org.mule.providers.PollingMessageReceiver.run( PollingMessageReceiver.java:71)=20 at org.mule.impl.work.WorkerContext.run( WorkerContext.java:317)=20 at = edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.= runTask( ThreadPoolExecutor.java:650)=20 at = edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.= run( ThreadPoolExecutor.java:675)=20 at java.lang.Thread.run(Unknown Source) =20 -------------------------------------------------------------------------= ----- = -------------------------------------------------------------------------= Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to = share your opinions on IT & business topics through brief surveys - and earn cash = http://www.techsay.com/default.php?page=3Djoin.php&p=3Dsourceforge&CID=3D= DEVDEV -------------------------------------------------------------------------= ----- _______________________________________________ Servingxml-help mailing list Ser...@li... https://lists.sourceforge.net/lists/listinfo/servingxml-help |