I've inherited a business service that takes a large XML document with repeating elements, extracts them via %XML.Reader and chunks them into separate persistent objects for delivery to a EnsLib.MsgRouter.RoutingEngine-based routing rule. Unfortunately, the lack of GetValueAt() for the message's class leaves me without much in the way of complex decision-making options.
I've hacked together a rather inefficient mechanism for getting at what I need by using %XML.Adaptor's XMLExportToString() and EnsLib.EDI.XML.Document's ImportFromString() method to extract things like child node counts and such. This seems incredibly wasteful.
Is there a more streamlined way to "clone" a simple XML-Enabled %Persistent object as one of type EnsLib.EDI.XML.Document?