Hi all

A guy on the forums posted a very small schema, in which he had promoted an element
as a distinguished field.

His schema was this:

<?xml version="1.0" encoding="utf-16" ?>

<xsd:schema xmlns:b="http://schemas.microsoft.com/BizTalk/2003" attributeFormDefault="unqualified"
elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <xsd:element name="outbound_task">

    <xsd:annotation>

      <xsd:appinfo>

        <properties xmlns="http://schemas.microsoft.com/BizTalk/2003">

          <property distinguished="true"
xpath="/*[local-name()=’outbound_task’ and namespace-uri()=”]/*[local-name()=’task’
and namespace-uri()=”]/*[local-name()=’task_id’ and namespace-uri()=”]" />

        </properties>

      </xsd:appinfo>

    </xsd:annotation>

    <xsd:complexType>

      <xsd:sequence>

        <xsd:element name="task">

          <xsd:complexType>

            <xsd:sequence>

              <xsd:element
minOccurs="0" name="task_id" type="xsd:decimal" />

            </xsd:sequence>

          </xsd:complexType>

        </xsd:element>

      </xsd:sequence>

    </xsd:complexType>

  </xsd:element>

</xsd:schema>

His issue was, that when he tried using the distinguished field in an orchestration,
the task_id field just didn’t show up in intellisense. And if he just entered the
complete value in the expression shape (like this: Message.task.task_id) then he got
a compile time error.

I messed around with it a lot, trying all sorts of stuff, but ended up with a quite
simple solution: the word “task” is a reserved word. For a complete list of the reserved
words, take a look at http://msdn.microsoft.com/en-us/library/aa547020.aspx.
So, basically, renaming the “task” element to “Task” or something completely different
(but still avoiding any reserved words) will work.

Hope this helps.



eliasen