O Biztalk pode receber as mensagens no formato, XML, Flat File (txt) ou EDI (Electronic Document Interchange), mas sempre vai processar e trabalhar com as mensagem em formato XML.Isso quer dizer que devemos ter um esqueleto, um modelo da mensagem, para saber quais campos esperar e qual estrutura poder validar.No Visual Studio, utilizamos o Biztalk Schema Editor para criar um schema que representa esse modelo de mensagem. O resultado e um arquivo XSD (XML Schema Definition), onde criar esse arquivo e um dos primeiros passos no desenvolvimento de um novo projeto em Biztalk.Terminologia do XMLNo XML nos temos:Root: E o elemento Pai do schema. Por definicao, o schema de um projeto em Biztalk, sempre deve conter um Root Node.Namespace: E usado para identificar o schema de forma unica, conforme padrao do W3C. Dentro do Biztalk, a mensagem e identificada pelo Namespace + Root Node. E recomendado que essa combinacao seja unica dentre todos os projetos publicados.Elemento: Usado para armazenar um dado de forma hierarquica.Atributo: Usado para associar uma informacao adicional ao Elemento e nao pode ser aninhado.Como no exemplo:<Cliente ID=12345>Contoso</Cliente>Nesse exemplo, dentro do schema a tag Cliente seria o Elemento e o ID dentro da tag, seria o Atributo.XSDL (XML Schema Definition Language): E uma linguagem usada para criar schemas, a qual representa o formato da mensagem que o Biztalk ira processar.XPath (XML Path Language): E uma linguagem usada para navegar atraves da hierarquia de um documento XML.Biztalk XML SchemaDentro do nosso projeto no Visual Studio, um schema e representado visualmente da seguinte forma:Se abrirmos o arquivo Schema1.xsd em um editor de texto, vamos encontrar:<?xml version="1.0" encoding="utf-16"?><xs:schema xmlns="http://POC_EDI_ACK.Schema1" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" targetNamespace="http://POC_EDI_ACK.Schema1" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="Root"> <xs:complexType> <xs:sequence> <xs:element name="POC"> <xs:complexType> <xs:sequence> <xs:element name="Teste" type="xs:string" /> <xs:element name="Teste2" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element></xs:schema>Nesse schema, reparem no Root Node, que eu chamei de Root e no namespace que e http://POC_EDI_ACK.Schema1. Nesse schema tenho um Elemento que eu chamei de POC e dentro dele tenho mais dois elementos, que eu chamei de Teste e Teste2.Segue o equivalente de uma mensagem baseado nesse schema:<ns0:Root xmlns:ns0="http://POC_EDI_ACK.Schema1"> <POC> <Teste>Teste_0</Teste> <Teste2>Teste2_0</Teste2> </POC></ns0:Root>Essa mensagem e o que chamamos de Instancia de XML.No Biztalk Schema Editor, conseguimos facilmente alterar qualquer propriedade do schema e seus elementos. Segue a propriedade que representa o Namespace no schema.Como ja falei no post anterior, esse Biztalk Schema Editor e muito util e uso mesmo em outros projetos, pois posso criar meu schema de uma maneira bem facil e intuitiva e depois posso usar o XSD.exe para transformar esse schema em classes .NET.Namespaces dentro do Biztalk No nosso exemplo anterior o Namespace aparece na tag xmlns com o seguinte valor http://POC_EDI_ACK.Schema1Podemos notar tambem que a mensagem tem um Root Node, o qual esta representada pelo elemento Root, mas poderia ser qualquer outro nome.Para o Biztalk processar as mensagens corretamente, ele deve conseguir identifica-las e assim endereca-las para o seu destinatario. Dessa forma, conseguimos identificar as mensagens atraves do seu Namespace#Root Node. Os valores sao concatenados com o caracter especial #. Voltando ao nosso exemplo, a nossa mensagem seria identificada da seguinte maneira:http://POC_EDI_ACK.Schema1#RootSe a mensagem for