XML Disassembler Pipeline Component
The XML Disassembler pipeline component combines XML parsing and disassembling into one component. Its primary functions are:
Disassembling the interchange.
Promoting the content properties from interchange and individual document levels on to the message context.
The following actions occur in the XML Disassembler component after receiving an envelope:
The disassembler parses the envelope by using the envelope schemas statically associated with the component at design time or dynamically by determining envelope schemas from the message type at run time. The schema is used to verify the structure of the envelope during envelope parsing. If envelope structure is not defined, it is found recursively by using the root node's namespace and base name to look up the schemas.
The disassembler component parses each document within the envelope. For each document, the BizTalk message object is created with its own context where all the properties promoted from the envelope and from the document itself get copied. The component pulls the content properties from the envelope and message instances by using the predefined XPaths coded as annotations in the XSD schemas associated with the envelope and message. The envelope schemas as well as the individual document schemas are associated with the disassembler component in Pipeline Designer.
The XML Disassembler only processes data in the body part of the message. Thus, only properties from body part can be promoted. Datetime values from the fields associated with the promotable properties get converted to UTC when property promotion occurs. Non-body parts are copied to the output message unchanged.
The XML Disassembler pipeline component currently forces conversion of all datetime properties to UTC before they reach the message store. BizTalk Server uses an SQL datetime type internally, which does not have information about the time zone. If you generate a datetime property in an orchestration, and then try to use it for correlation with subsequent messages, it may not work correctly, because the XML Disassembler pipeline component will convert it on response into UTC, and Microsoft SQL Server will have no way to identify the original and response time fields as identical. Similarly, you may encounter discrepancies when viewing message event and service instance tracking data.
For information about configuring the XML Disassembler pipeline component, see How to Configure the XML Disassembler Pipeline Component.