Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Ao usar um esquema XSD para fornecer uma vista XML da base de dados relacional, os elementos e atributos do esquema devem ser mapeados para tabelas e colunas da base de dados. As linhas na tabela/vista da base de dados serão mapeadas para elementos no documento XML. Os valores das colunas na base de dados correspondem a atributos ou elementos.
Quando as consultas XPath são especificadas contra o esquema XSD anotado, os dados dos elementos e atributos do esquema são recuperados das tabelas e colunas para onde correspondem. Para obter um único valor da base de dados, o mapeamento especificado no esquema XSD deve ter tanto especificação de relação como de campo. Se o nome de um elemento/atributo não for o mesmo nome da tabela/vista ou coluna para a qual corresponde, as anotações sql:relation e sql:field são usadas para especificar o mapeamento entre um elemento ou atributo num documento XML e a tabela (vista) ou coluna numa base de dados.
Relação SQL
A anotação sql:relation é adicionada para mapear um nó XML no esquema XSD para uma tabela de base de dados. O nome de uma tabela (vista) é especificado como o valor da anotação sql:relation .
Quando sql:relation é especificado num elemento, o âmbito desta anotação aplica-se a todos os atributos e elementos filhos que são descritos na definição complexa desse elemento, fornecendo assim um atalho na escrita de anotações.
A anotação sql:relation também é útil quando identificadores válidos no Microsoft SQL Server não o são em XML. Por exemplo, "Order Details" é um nome de tabela válido no SQL Server, mas não no XML. Nesses casos, a anotação sql:relation pode ser usada para especificar o mapeamento, por exemplo:
<xsd:element name="OD" sql:relation="[Order Details]">
Campo SQL
A anotação de campo sql mapeia um elemento ou atributo para uma coluna de base de dados. A anotação sql:field é adicionada para mapear um nó XML no esquema para uma coluna de base de dados. Não podes especificar sql:field num elemento de conteúdo vazio.
Examples
Para criar exemplos funcionais usando os seguintes exemplos, deve cumprir certos requisitos. Para mais informações, consulte Requisitos para Executar Exemplos de SQLXML.
A. Especificação das anotações sql:relation e sql:field
Neste exemplo, o esquema XSD consiste num <elemento Contact> de tipo complexo com <elementos filhos FName> e <LName> e o atributo ContactID .
A anotação sql:relation mapeia o <elemento Contact> para a tabela Person.Contact na base de dados AdventureWorks. A anotação sql:field mapeia o <elemento FName> para a coluna Primeiro Nome e o <elemento LName> para a coluna Apelido.
Não é especificada nenhuma anotação para o atributo ContactID . Isto resulta num mapeamento padrão do atributo para a coluna com o mesmo nome.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="Contact" sql:relation="Person.Contact" >
<xsd:complexType>
<xsd:sequence>
<xsd:element name="FName"
sql:field="FirstName"
type="xsd:string" />
<xsd:element name="LName"
sql:field="LastName"
type="xsd:string" />
</xsd:sequence>
<xsd:attribute name="ContactID"
type="xsd:integer" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
Para testar uma consulta XPath de exemplo contra o esquema
Copie o código do esquema acima e cole num ficheiro de texto. Guarde o ficheiro como MySchema-annotated.xml.
Copie o modelo seguinte abaixo e cole-o num ficheiro de texto. Guarda o ficheiro como MySchema-annotatedT.xml no mesmo diretório onde guardaste MySchema-annotated.xml.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="MySchema-annotated.xml"> /Contact </sql:xpath-query> </ROOT>O caminho do diretório especificado para o esquema de mapeamento (MySchema-annotated.xml) é relativo ao diretório onde o modelo é guardado. Um caminho absoluto também pode ser especificado, por exemplo:
mapping-schema="C:\SqlXmlTest\MySchema-annotated.xml"Crie e use o Script de Teste SQLXML 4.0 (Sqlxml4test.vbs) para executar o modelo.
Para mais informações, consulte Utilização de ADO para Executar Consultas SQLXML.
Aqui está o conjunto de resultados parciais:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Contact ContactID="1">
<FName>Gustavo</FName>
<LName>Achong</LName>
</Contact>
.....
</ROOT>