namespace problem
Hi, I am working with some xml def standards that are not so well defined (life is hard sometimes). So to be able to accept several messages coming in different namespaces (they should be in the name ideally for the process I have to do, like automatic comparison to each other), I use the XmlOptions.setLoadSubstituteNamespaces method to put them all in a common namespaces. It works very well. In my processing I generate some output messages. Those messages are defined in my common namespace, but I have to substitute them to another namepace (to respect those damn standards). I have seen on some threads already a suggestion of parsing with an XmlCursor the xml tree and setting new Qname (keeping the local part but changing the prefix). It works very well, but for some reason I do not understand I get additional namespace declaration inside the xml. Here is an example: ?xml version=1.0 encoding=UTF-8? Document xmlns=urn:xsd:$pacs.002.002.02 pacs.002.002.02 GrpHdr MsgIdDoc:MsgId/MsgId CreDtTm2001-12-31T12:00:00/CreDtTm InstgAgt xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xmlns:Doc=xml.staqs.nba.com FinInstnId BICBNPAFRPPAFI/BIC /FinInstnId /InstgAgt InstdAgt xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xmlns:Doc=xml.staqs.nba.com FinInstnId BICBNPAFRPPAFI/BIC /FinInstnId /InstdAgt /GrpHdr /pacs.002.002.02 /Document For element InstgAgt and InstdAgt I have a unused namespace declaration. How to avoid this ? Note that is generated when I copy some part of xml tree from a source xml to a target xml, like this: public static Pacs00200202 generateGenericHeader(Pacs00300202 msg) { Pacs00200202 doc = Pacs00200202.Factory.newInstance(); GroupHeader12 hdr = doc.addNewGrpHdr(); hdr.setMsgId(msg.getGrpHdr().getMsgId()); hdr.setCreDtTm(msg.getGrpHdr().getCreDtTm()); (1) hdr.setInstdAgt(msg.getGrpHdr().getInstdAgt()); (2) hdr.setInstgAgt(msg.getGrpHdr().getInstgAgt()); return doc; } If I replace line (1) by: hdr.addNewInstdAgt().addNewFinInstnId().setBIC(msg.getGrpHdr().getInstdAgt().getFinInstnId().getBIC()); and line (2) by: hdr.addNewInstgAgt().addNewFinInstnId().setBIC(msg.getGrpHdr().getInstgAgt().getFinInstnId().getBIC()); I get a correct XML: ?xml version=1.0 encoding=UTF-8? Document xmlns=urn:xsd:$pacs.002.002.02 pacs.002.002.02 GrpHdr MsgIdDoc:MsgId/MsgId CreDtTm2001-12-31T12:00:00/CreDtTm InstgAgt FinInstnId BICBNPAFRPPAFI/BIC /FinInstnId /InstgAgt InstdAgt FinInstnId BICBNPAFRPPAFI/BIC /FinInstnId /InstdAgt /GrpHdr /pacs.002.002.02 /Document Why this different behaviour in this two cases ? Thanks, Bruno smime.p7s Description: S/MIME cryptographic signature file Description: boundary/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: namespace problem
Assuming that all your schema that you used to generate these Xbeans from is in urn:xsd:$pacs.002.002.02 namespace, it is strange that this happens. But there is MsgIdDoc:MsgId/MsgId in both messages, which looks like a QName. Maybe the schema you're using isn't free of namespace xml.staqs.nba.com. Cezar -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 24, 2007 5:47 AM To: user@xmlbeans.apache.org Subject: namespace problem Hi, I am working with some xml def standards that are not so well defined (life is hard sometimes). So to be able to accept several messages coming in different namespaces (they should be in the name ideally for the process I have to do, like automatic comparison to each other), I use the XmlOptions.setLoadSubstituteNamespaces method to put them all in a common namespaces. It works very well. In my processing I generate some output messages. Those messages are defined in my common namespace, but I have to substitute them to another namepace (to respect those damn standards). I have seen on some threads already a suggestion of parsing with an XmlCursor the xml tree and setting new Qname (keeping the local part but changing the prefix). It works very well, but for some reason I do not understand I get additional namespace declaration inside the xml. Here is an example: ?xml version=1.0 encoding=UTF-8? Document xmlns=urn:xsd:$pacs.002.002.02 pacs.002.002.02 GrpHdr MsgIdDoc:MsgId/MsgId CreDtTm2001-12-31T12:00:00/CreDtTm InstgAgt xmlns:xsi=http://www.w3.org/2001/XMLSchema- instance xmlns:Doc=xml.staqs.nba.com FinInstnId BICBNPAFRPPAFI/BIC /FinInstnId /InstgAgt InstdAgt xmlns:xsi=http://www.w3.org/2001/XMLSchema- instance xmlns:Doc=xml.staqs.nba.com FinInstnId BICBNPAFRPPAFI/BIC /FinInstnId /InstdAgt /GrpHdr /pacs.002.002.02 /Document For element InstgAgt and InstdAgt I have a unused namespace declaration. How to avoid this ? Note that is generated when I copy some part of xml tree from a source xml to a target xml, like this: public static Pacs00200202 generateGenericHeader(Pacs00300202 msg) { Pacs00200202 doc = Pacs00200202.Factory.newInstance(); GroupHeader12 hdr = doc.addNewGrpHdr(); hdr.setMsgId(msg.getGrpHdr().getMsgId()); hdr.setCreDtTm(msg.getGrpHdr().getCreDtTm()); (1) hdr.setInstdAgt(msg.getGrpHdr().getInstdAgt()); (2) hdr.setInstgAgt(msg.getGrpHdr().getInstgAgt()); return doc; } If I replace line (1) by: hdr.addNewInstdAgt().addNewFinInstnId().setBIC(msg.getGrpHdr().getInstdA gt ().getFinInstnId().getBIC()); and line (2) by: hdr.addNewInstgAgt().addNewFinInstnId().setBIC(msg.getGrpHdr().getInstgA gt ().getFinInstnId().getBIC()); I get a correct XML: ?xml version=1.0 encoding=UTF-8? Document xmlns=urn:xsd:$pacs.002.002.02 pacs.002.002.02 GrpHdr MsgIdDoc:MsgId/MsgId CreDtTm2001-12-31T12:00:00/CreDtTm InstgAgt FinInstnId BICBNPAFRPPAFI/BIC /FinInstnId /InstgAgt InstdAgt FinInstnId BICBNPAFRPPAFI/BIC /FinInstnId /InstdAgt /GrpHdr /pacs.002.002.02 /Document Why this different behaviour in this two cases ? Thanks, Bruno ___ Notice: This email message, together with any attachments, may contain information of BEA Systems, Inc., its subsidiaries and affiliated entities, that may be confidential, proprietary, copyrighted and/or legally privileged, and is intended solely for the use of the individual or entity named in this message. If you are not the intended recipient, and have received this message in error, please immediately return this by email and then delete it. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: namespace problem
It's indeed strange. Don't look at element values like Doc:MsgId. Those values are put by a plugin I have that generates xml from xsd. The value itself has nothing to do with my namespace problem. Anyone has an hint on this issue ? Bruno - Original Message - From: Cezar Andrei [EMAIL PROTECTED] To: user@xmlbeans.apache.org Sent: Wednesday, January 24, 2007 5:38 PM Subject: RE: namespace problem Assuming that all your schema that you used to generate these Xbeans from is in urn:xsd:$pacs.002.002.02 namespace, it is strange that this happens. But there is MsgIdDoc:MsgId/MsgId in both messages, which looks like a QName. Maybe the schema you're using isn't free of namespace xml.staqs.nba.com. Cezar - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]