Welcome to Office Zealot Sign in | Join | Help

Metadata for the HelloFriend IBF Solution

Following the overwhelming response for HelloFriend IBF solution tutorial, I would like to put up the Metadata that has been described in Part2, Part3 and Part4 of the 5-part article on building the HelloFriend IBF Solution in today's post. Hope this will serve as a good reference in your attempt to build the IBF solution and get you started on this exciting new technology to leverage Office Application development... Good luck!!!

<?xml version="1.0" encoding="utf-8"?>
<Metadata Version="1.0.0.0" xmlns="http://schemas.microsoft.com/InformationBridge/2004/Metadata">
  <MetadataScopes xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <MetadataScope Name="http://InformationBridge/SayHello" DisplayName="SayHello" Version="1.0">
      <Entities>
        <Entity Name="Friend" DefaultReferenceSchemaName="FriendSchema" DefaultViewName="GreetingMessage">
          <Views>
            <View Name="GreetingMessage" SchemaName="GreetingMessageSchema" IsList="false">
              <MenuItemDefinition MenuType="1">
                <MenuDefinitionOperationInstance OperationName="DefineMenuItemName" Index="0">
                  <TransformationInstances>
                    <TransformationInstance TransformationName="MenuCaptionCreation" Index="1" InputOperationIndex="-1001" InputOperationOutputSchemaIndex="1">
                    </TransformationInstance>
                  </TransformationInstances>
                </MenuDefinitionOperationInstance>
              </MenuItemDefinition>
              <ViewLocators>
                <ViewLocator ReferenceSchemaName="FriendSchema">
                  <OperationInstance OperationName="GetGreetingMessage" Index="0">
                    <TransformationInstances>
                      <TransformationInstance Index="1" InputOperationIndex="-1001" InputOperationOutputSchemaIndex="1">
                      </TransformationInstance>
                    </TransformationInstances>
                  </OperationInstance>
                </ViewLocator>
              </ViewLocators>
              <Actions>
                <Action Name="Display Greeting Message" Type="EnterContext" IsSequentialExecution="true">
                  <MenuItemDefinition MenuType="0">
                  </MenuItemDefinition>
                  <OperationInstances>
                    <OperationInstance OperationName="QueryMenu" Index="1">
                    </OperationInstance>
                    <OperationInstance OperationName="ShowAssociations" Index="2">
                      <TransformationInstances>
                        <TransformationInstance Index="1" InputOperationIndex="1" InputOperationOutputSchemaIndex="1">
                        </TransformationInstance>
                      </TransformationInstances>
                    </OperationInstance>
                    <OperationInstance OperationName="ShowRegion" Index="3">
                      <TransformationInstances>
                        <TransformationInstance TransformationName="GreetingMessageTransform" Index="1" InputOperationIndex="-1" InputOperationOutputSchemaIndex="1">
                        </TransformationInstance>
                      </TransformationInstances>
                    </OperationInstance>
                  </OperationInstances>
                </Action>
              </Actions>
            </View>
          </Views>
        </Entity>
      </Entities>
      <Ports>
        <Port xsi:type="PortFileXml" Name="FriendPort" IsCached="false" AuthenticationTypeValue="Windows" Comments="FriendPort specifies the XML Schema Definition that should be used to validate&#xD;&#xA;the input structure of a Friend Entity received from an Office Document.&#xD;&#xA;">
          <Data>
            <xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
              <xs:element name="Friend">
                <xs:complexType>
                  <xs:attribute name="Name" type="xs:string" use="required">
                  </xs:attribute>
                </xs:complexType>
              </xs:element>
            </xs:schema>
          </Data>
        </Port>
        <Port xsi:type="PortFileXml" Name="GreetingMessagePort" IsCached="false" AuthenticationTypeValue="Windows" Comments="GreetingMessagePort provides the definition of the schema to validate the structure of &#xD;&#xA;the view GreetingMessage returned  by the execution of the operation &#xD;&#xA;GetGreetingMessage() on the entity Friend.">
          <Data>
            <xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
              <xs:element name="Salutation" type="xs:string">
              </xs:element>
              <xs:element name="GreetingMessage">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element ref="Salutation">
                    </xs:element>
                    <xs:element ref="Name">
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="Name" type="xs:string">
              </xs:element>
            </xs:schema>
          </Data>
        </Port>
        <Port xsi:type="PortFileXml" Name="GreetingMessageTransformPort" IsCached="false" AuthenticationTypeValue="Windows">
          <Data>
            <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:iwb="http://schemas.microsoft.com/InformationBridge/2004" xmlns:ab="urn-GreetingService-Data">
              <xsl:template match="ab:GreetingMessage">
                <iwb:Region iwb:AssociationName="Region3" iwb:Enabled="true" iwb:EntityName="Friend" iwb:MetadataScopeName="http://InformationBridge/SayHello">
                  <iwb:RegionProperties RegionName="Greet Friend" Caption="Greetings to a Friend" Description="Greet Friend Page" ShowAs="ExpandedRegion" TypeName="SayHello.UserInterface.GreetingMessage">
                    <xsl:choose>
                      <xsl:when test="count(ab:Name) &gt;= 1">
                        <xsl:copy-of select="/">
                        </xsl:copy-of>
                      </xsl:when>
                      <xsl:otherwise>
                        <ab:GreetingMessage>
                          <EmptyResult xmlns="">Hello Stranger</EmptyResult>
                        </ab:GreetingMessage>
                      </xsl:otherwise>
                    </xsl:choose>
                  </iwb:RegionProperties>
                </iwb:Region>
              </xsl:template>
            </xsl:stylesheet>
          </Data>
        </Port>
        <Port xsi:type="PortSoap" Name="GreetingService" Location="http://localhost/IBFSimpleSolution/SayHello.asmx" IsCached="false" AuthenticationTypeValue="Windows" Comments="GreetingService port provides the location of ASP.NET file, in which this&#xD;&#xA;service has been implemented.">
        </Port>
        <Port xsi:type="PortFileXml" Name="MenuCaptionCreationInPort" IsCached="false" AuthenticationTypeValue="None" Comments="Supplies the menu caption for the IBF task pane.">
          <Data>
            <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:iwb="http://schemas.microsoft.com/InformationBridge/2004" xmlns:ab="urn-GreetingService-Data">
              <xsl:template match="/">
                <iwb:ViewProperties Description="Default Friend view" ShowAs="MenuItem">
                  <xsl:attribute name="Caption">Greeting Message for <xsl:value-of select="//@Name"></xsl:value-of></xsl:attribute>
                </iwb:ViewProperties>
              </xsl:template>
            </xsl:stylesheet>
          </Data>
        </Port>
        <Port xsi:type="PortFileXml" Name="MenuCaptionCreationOutPort" IsCached="false" AuthenticationTypeValue="Windows">
          <Data>
            <s:element name="ViewProperties" type="ViewPropertiesType" xmlns:s="http://www.w3.org/2001/XMLSchema">
              <s:complexType name="ViewPropertiesType">
                <s:sequence>
                  <s:any namespace="##any" processContents="lax" minOccurs="0">
                  </s:any>
                </s:sequence>
                <s:attribute name="Caption" type="s:string" use="optional" default="">
                </s:attribute>
                <s:attribute name="Description" type="s:string" use="optional" default="">
                </s:attribute>
              </s:complexType>
            </s:element>
          </Data>
        </Port>
        <Port xsi:type="PortAssembly" Name="UIAssembly" Location="C:\Inetpub\wwwroot\IBFSimpleSolution\UserInterface\bin\Debug\SayHello.UserInterface.dll" IsCached="false" AuthenticationTypeValue="None" Comments="UI Developed to render information retreived from IBF-compatible Web Service.">
        </Port>
      </Ports>
      <Operations>
        <Operation xsi:type="OperationTransformationAggregation" Name="DefineMenuItemName" EntityName="Friend" TimeOut="0">
          <InputSchemas>
            <SchemaInstance SchemaName="MenuCaptionCreationOutputSchema" Index="1">
            </SchemaInstance>
          </InputSchemas>
          <OutputSchemas>
            <SchemaInstance SchemaName="MenuCaptionCreationOutputSchema" Index="1">
            </SchemaInstance>
          </OutputSchemas>
        </Operation>
        <Operation xsi:type="OperationSoapRequest" Name="GetGreetingMessage" EntityName="Friend" TimeOut="0" IsUpdate="false" PortName="GreetingService" SoapAction="http://InformationBridge/SayHello/GetGreetingMessage" SoapBodyWrapper="q1:GetGreetingMessage" xmlns:q1="http://InformationBridge/SayHello">
          <InputSchemas>
            <SchemaInstance SchemaName="FriendSchema" Index="1">
            </SchemaInstance>
          </InputSchemas>
          <OutputSchemas>
            <SchemaInstance SchemaName="GreetingMessageSchema" Index="1">
            </SchemaInstance>
          </OutputSchemas>
        </Operation>
        <Operation xsi:type="OperationTransformationAggregation" Name="MenuDefinitionPassThru" EntityName="Friend" TimeOut="0" Comments="This operation is used to define the name of the menu displayed in the IBF Task Pane">
          <InputSchemas>
            <SchemaInstance SchemaName="AnySchema" Index="1">
            </SchemaInstance>
          </InputSchemas>
          <OutputSchemas>
            <SchemaInstance SchemaName="AnySchema" Index="1">
            </SchemaInstance>
          </OutputSchemas>
        </Operation>
        <Operation xsi:type="OperationQueryMenu" Name="QueryMenu" TimeOut="0" QueryMenuTypeValue="" MenuType="1">
          <InputSchemas>
            <SchemaInstance SchemaName="AnySchema" Index="1">
            </SchemaInstance>
          </InputSchemas>
          <OutputSchemas>
            <SchemaInstance SchemaName="AnySchema" Index="1">
            </SchemaInstance>
          </OutputSchemas>
        </Operation>
        <Operation xsi:type="OperationCustom" Name="ShowAssociations" TimeOut="0" OperationTypeName="MSIBF.UI.ShowAssociations">
          <InputSchemas>
            <SchemaInstance SchemaName="AnySchema" Index="1">
            </SchemaInstance>
          </InputSchemas>
          <OutputSchemas>
            <SchemaInstance SchemaName="AnySchema" Index="1">
            </SchemaInstance>
          </OutputSchemas>
        </Operation>
        <Operation xsi:type="OperationCustom" Name="ShowRegion" TimeOut="0" OperationTypeName="MSIBF.UI.ShowRegion" PortName="UIAssembly">
          <InputSchemas>
            <SchemaInstance SchemaName="AnySchema" Index="1">
            </SchemaInstance>
          </InputSchemas>
          <OutputSchemas>
            <SchemaInstance SchemaName="AnySchema" Index="1">
            </SchemaInstance>
          </OutputSchemas>
        </Operation>
      </Operations>
      <Transformations>
        <Transformation xsi:type="TransformationXsl" Name="GreetingMessageTransform" InputSchemaName="AnySchema" OutputSchemaName="AnySchema" PortName="GreetingMessageTransformPort" ApplyTranslations="false">
        </Transformation>
        <Transformation xsi:type="TransformationXsl" Name="MenuCaptionCreation" InputSchemaName="FriendSchema" OutputSchemaName="MenuCaptionCreationOutputSchema" PortName="MenuCaptionCreationInPort" ApplyTranslations="false">
        </Transformation>
      </Transformations>
      <Schemas>
        <Schema xsi:type="SchemaString" Name="AnySchema" Comments="A Schema to be used for operations involving plain String input and output">
        </Schema>
        <Schema xsi:type="SchemaXsd" Name="FriendSchema" Comments="FriendSchema is the schema corresponding to the entity &quot;Friend&quot;.&#xD;&#xA;&#xD;&#xA;Corresponding to this schema is a class named &quot;Friend&quot; in the WebService.&#xD;&#xA;This schema maps directly to the class &quot;Friend&quot; and is the therefore an XML &#xD;&#xA;Representation of the class structure." PortName="FriendPort">
        </Schema>
        <Schema xsi:type="SchemaXsd" Name="GreetingMessageSchema" PortName="GreetingMessagePort">
        </Schema>
        <Schema xsi:type="SchemaXsd" Name="MenuCaptionCreationOutputSchema" PortName="MenuCaptionCreationOutPort">
        </Schema>
      </Schemas>
    </MetadataScope>
  </MetadataScopes>
  <OperationTypes xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <OperationType Name="MSIBF.UI.ShowAssociations">
    </OperationType>
    <OperationType Name="MSIBF.UI.ShowRegion">
    </OperationType>
  </OperationTypes>
  <Timestamp xmlns:md="http://schemas.microsoft.com/InformationBridge/2004/Metadata" xmlns:mdd="http://schemas.microsoft.com/InformationBridge/2004/MetadataDesigner/Schema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <MetadataScopeTimestamps>
      <MetadataScopeTimestamp MetadataScopeName="http://InformationBridge/SayHello">
        <EntityTimestamps>
          <EntityTimestamp EntityName="Friend">
          </EntityTimestamp>
        </EntityTimestamps>
      </MetadataScopeTimestamp>
    </MetadataScopeTimestamps>
  </Timestamp>
</Metadata>
Published Wednesday, September 08, 2004 11:02 PM by desai

Comments

# re: Metadata for the HelloFriend IBF Solution

Sunday, May 14, 2006 1:07 PM by Anonymous
Hello Vijay,

Can i get a complete hello friend IBF solution. I wnat to give it a try to build a simple application and then move towards some complex application.

Thanks in advance,
Ramendra K
Anonymous comments are disabled