Share via


The ESB Itinerary SOAP Header Schema

Retired Content

This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

The ESB Itinerary schema named Itinerary.xsd defines an itinerary as a set of processing instructions; it is generally referred to as itinerary services. An itinerary service may contain one or more itinerary services and the corresponding resolver connection strings, as shown in the following schema definition.

<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns:b="https://schemas.microsoft.com/BizTalk/2003"
  xmlns="http://schemas.microsoft.biztalk.practices.esb.com/itinerary"
   targetNamespace="http://schemas.microsoft.biztalk.practices.esb.com/itinerary"
   xmlns:xs="http://www.w3.org/2001/XMLSchema">  <xs:annotation>
    <xs:appinfo>
      <b:schemaInfo root_reference="Itinerary"
                    xmlns:b="https://schemas.microsoft.com/BizTalk/2003" />
    </xs:appinfo>
  </xs:annotation>
  <xs:element name="Itinerary">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="BizTalkSegment">
          <xs:complexType>
            <xs:attribute name="interchangeId" type="xs:string" />
            <xs:attribute name="epmRRCorrelationToken" type="xs:string" />
            <xs:attribute name="receiveInstanceId" type="xs:string" />
            <xs:attribute name="messageId" type="xs:string" />
          </xs:complexType>
        </xs:element>
        <xs:element name="ServiceInstance">
          <xs:complexType>
            <xs:attribute name="uuid" type="xs:string" />
            <xs:attribute name="name" type="xs:string" />
            <xs:attribute name="type" type="xs:string" />
            <xs:attribute name="state" type="xs:string" />
            <xs:attribute name="position" type="xs:int" />
            <xs:attribute name="isRequestResponse" type="xs:boolean" />
          </xs:complexType>
        </xs:element>
        <xs:element minOccurs="1" maxOccurs="unbounded" name="Services">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Service">
                <xs:complexType>
                  <xs:attribute name="uuid" type="xs:string" />
                  <xs:attribute name="beginTime" type="xs:string" />
                  <xs:attribute name="completeTime" type="xs:string" />
                  <xs:attribute name="name" type="xs:string" />
                  <xs:attribute name="type" type="xs:string" />
                  <xs:attribute name="state" type="xs:string" />
                  <xs:attribute name="resolve" type="xs:boolean" />
                  <xs:attribute name="isRequestResponse" type="xs:boolean" />
                  <xs:attribute name="position" type="xs:int" />
                  <xs:attribute name="serviceInstanceId" type="xs:string" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="ResolverGroups">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="Resolvers">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="xs:string">
                      <xs:attribute name="serviceId" type="xs:string" />
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="uuid" type="xs:string" />
      <xs:attribute name="beginTime" type="xs:string" />
      <xs:attribute name="completeTime" type="xs:string" />
      <xs:attribute name="state" type="xs:string" />
      <xs:attribute name="isRequestResponse" type="xs:boolean" />
      <xs:attribute name="servicecount" type="xs:int" />
    </xs:complexType>
  </xs:element>
</xs:schema>

The ServiceInstance element** **corresponds to the current itinerary service and contains properties such as name, type, state, and position that the service promotes into the message context. The schema named System-Properties.xsd in the ESB.Itinerary.Schemas project defines these properties.

The Services element represents a set of itinerary services, with each service defined by its state, begin time, completion time, and type (Orchestration or Messaging).

The ResolverGroups element contains multiple Resolvers elements, each of which defines one or more resolver connection strings that an itinerary references through the serviceid attribute. The ESB Itinerary Web services require messages to contain SOAP headers compliant with the Itinerary.xsd schema shown earlier in this topic.

The following listing shows a sample of a submitted itinerary SOAP header prior to processing by the ESB Itinerary Pipeline component.

<?xml version="1.0" encoding="utf-8"?>
<Itinerary
    xmlns="http://schemas.microsoft.biztalk.practices.esb.com/itinerary"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    uuid="" beginTime="" completeTime="" 
    state="Pending" isRequestResponse="false">
  <ServiceInstance uuid="" name="Microsoft.Practices.ESB.Services.Transform"
                   type="Messaging" state="Pending" position="0"
                   isRequestResponse="false"  />
  <Services >
    <Service uuid="" name="Microsoft.Practices.ESB.Services.Transform"
             type="Messaging" state="Pending" beginTime="" completeTime=""
             position="0" isRequestResponse="false" serviceInstanceId="" />
  </Services>
  <Services >
    <Service uuid="" name="DynamicResolutionSolicitResp" 
             type="Messaging" state="Pending" beginTime="" completeTime=""  
             position="1" isRequestResponse="true" serviceInstanceId="" />
  </Services> 
  <ResolverGroups >
    <Resolvers serviceId="DynamicResolutionSolicitResp1">
      &lt;![CDATA[BRE:\\policy=GetCanadaEndPoint;version=;useMsg=;]]&gt;
    </Resolvers>
    <Resolvers serviceId="Microsoft.Practices.ESB.Services.Transform0">
      &lt;![CDATA[BRE:\\policy=CanadaSubmitOrderMaps;version=;useMsg=;]]&gt;
    </Resolvers>
  </ResolverGroups>
</Itinerary>