- Mapping

XML Transformation: Xslt vs .NET. Part 3.

Part 1.Part 2.Part 3. Max Toro commented on the Part 1 and his suggestions changed a lot. So, I have added this Part. It shows, how a small optimization could change the test results. Actually, I have added just two lines of code, that’s it.Next update is related to the garbage collection. Results were unstable, not now. The changes again were in small piece of code in test cycle:GC.Collect(); GC.WaitForFullGCComplete();... got additional numbers. The Max time is important in ......

XML Transformation: Xslt vs .NET. Part 2

Part 1.Part 2.Part 3. In the first part, I have compared the Xslt transformations of the XML documents with the Object transformations. It happens the Object transformations are faster in most cases. They are also simpler from the developer point of view. The next natural question is “If we use Json instead of XML, how faster the transformations would be?” If we got a freedom to choose Object transformations instead of Xslt transformations, it might be, we got even more freedom and choose Json or ......

XML Transformation: Xslt vs .NET. Part 1.

Part 1.Part 2.Part 3. The Xml transformation is an important part of the system integration. The Xml documents are everywhere despite surging JSON. When we need to transform [or map] one Xml document to another Xml, we have several options. Two of them prevail. The first is the Xslt language. The second is the object transformation. Xslt Transformations The Xslt language was created exactly for this purpose, to transform one Xml document to another Xml document. I am copying the Abstract of the Xslt ......

Domain Standards and Integration Architecture

The domain standard schemas are the repositories of domain knowledge. The message schemas are schemas for the real data transferring between real systems. Use the domain standard schemas as a reference model for your schemas. Do not use the domain standard schemas as your message schemas.

Complex XML schemas. How to simplify?

[Sample code is here: HIPAA Schema Simplification for the BizTalk Server application]The XML Schemas are used for two main tasks: for processing XML documents (for the XML document validation and for the XML document transformation); for defining the domain specific standards. XML Schemas and Domain StandardsLet's talk about the domain standards. EDI, RosettaNet, NIEM, ebXML, Global Justice XML Data Model, SWIFT, OpenTrave, Maritime Data Standards, HIPAA, HL7, etc. If we look at those standards, ......

BizTalk: Complex decoding in data transformations

Sometimes we need to make complex decoding in the data transformations. It could happen especially in the big EDI documents as HIPAA.Let’s start with examples.In one example we need to decode a field. We have the source codes and the target codes for this field. The number of both codes is small and the mapping is one to one or many to one (1-1, M-1). One of the simplest solution is to create a Decode .NET component. Store the code table as a dictionary and decoding will be fast. We could hard code ......

BizTalk: mapping with Xslt

BizTalk Map Editor (Mapper) is a good editor, especially in the last 2010 version of the BizTalk. But sometimes it still cannot do the tasks easily. It is time for the Xslt code, it is time to remember that the maps are executed by the Xslt engine. Right-click the Mapper Grid (a field between the source and target schemas) and choose Properties /Custom XSLT Path. Input here a file name for the file with Xslt code. Only this code will be executed now, forget the picture in the Mapper, all those links ......

BizTalk: Tips: Cumulative Map and Schema Testing

This is a small tidbit for routine work. It doesn't take too much time but helps with schema and map development. First time: 1). For each map I create the <test-map> folder as: TestCases\ Maps\ A12_311_to_Canonical\ A12_915_to_Canonical\ 2). Get the first test source message and place it in the <test-map> folder. Create a copy of this message and name it "Current". 3). Change the "TestMap Input Instance" property of the map to this name (for example as "<test-map>\Current.x... ......

BizTalk: Internals: Mapping: Script functoid: Type of the Input and output parameters

Rule of thumb: In the "Script Functoids - Inline C#" use only string types as the input and output parameters. How it works: If the C# method in the Script Functoids - Inline C# has non-string parameter, it will be converted to the string on the "border" of this functoid! Take in mind that the "real" type for Xml elements is "string", no matter how it is defined in the Schema. XML Schema primitive types define how strings should be transformed into other types on the borders, by serialization and ......

BizTalk: Schema: Odds: Generate Instance

Some times when I'm trying to generate an instance of a schema I've got strange results. I have a record parameter "Max Occurs" = unbounded. Some times "Generate Instance" the command generates 3 records, some times only one. I've made an investigation. Results: The number of the generated records: 0 1/default 2 n(>=3)Min Occurs: 3 1 2 n The number of the generate records is limited from the upper bound by Min Occurs. Pretty logical, doesn't it? Then why I was distracted? I am waiting the number ......

BizTalk: Mapper: Script functoids: Enhancement of the UI

BizTalk: Mapper: Script functoids: Enhancement of the UI Working with maps into the BizTalk Mapper more then a year, I've got some ideas how the Mapper can be improved. Look at the Script functoid. Usually I have a lot of them because only very simple logic I can implement with combination of other functoids. If I have more then one "If" then I use a Script functoid (SF). What I can see when I look at the map and try to understand logic of the SF? Nothing but only that "I have some logic inside". ......

BizTalk: Mapping, Logical functoids, and Boolean values

BizTalk: Mapping, Logical functoids, and Boolean values Several times I've got "non intuitive" result by using boolean values in maps. For example, I've tried to get values "true/false" or something else from the logical functoids for filling up the node in a Destination schema, but didn't get anything. Here is my discovering using boolean value in the maps. There are different flavors this problem: · Where we can use boolean values? · Where we can get boolean values? · How we can fill in the nodes ......

BizTalk: Mapping Empty or Missing attributes and elements with different combinations of parameters: Required/Optional, Min/MaxOccurs, Default, Fixed

Mapping Empty or Missing attributes and elements with different combinations of parameters: Required/Optional, Min/MaxOccurs, Default, Fixed When I am creating maps it is annoying to me to guess which values I'm getting if I map Empty or Missing attributes/elements. I've made an investigation on the base of a Standard "XML Schema Part 0: Primer. W3C Recommendation, 2 May 2001". http://www.w3.org/TR/2001/R... (below is this article). I added the last column ......

What I'd like to see in the BizTalk 2004 Mapper (and Schema Editor) at my routine work

IMHO What I'd like to see in the BizTalk 2004 Mapper (and Schema Editor) at my routine work: 1. Names of Source and Destination schemas (maybe on the heads of the Source and Dest panes). Usually I work with more then one maps in one project and I have the long map's names as "CompanyNDocumentBlahBlah_T... These names don't fit into the tab fields and I have to look to the Property window. I always have meaningless the Headers with text "Source/Destination schema". Why don't ......