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
Cada elemento e atributo no esquema XSD é mapeado para uma tabela/vista e coluna da base de dados devido ao mapeamento padrão. Se quiser criar um elemento no esquema XSD que não corresponde a nenhuma tabela de base de dados (vista) ou coluna e que não apareça no XML, pode especificar a anotação sql:mapped .
A anotação sql:mapped é especialmente útil se o esquema não puder ser modificado ou se o esquema for usado para validar XML de outras fontes e, no entanto, contiver dados que não estão armazenados na sua base de dados. A anotação sql:mapped difere de sql:is-constant no sentido em que os elementos e atributos não mapeados não aparecem no documento XML.
A anotação sql:mapped assume um valor booleano (0 = falso, 1 = verdadeiro). Os valores aceitáveis são 0, 1, verdadeiro e falso.
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 da anotação sql:mapped
Assuma que tens um esquema XSD de outra fonte. Este esquema XSD consiste num <elemento Person.Contact> com os atributos ContactID, FirstName, Apelido e HomeAddress .
Ao mapear este esquema XSD para a tabela Person.Contact na base de dados AdventureWorks, sql:mapped é especificado no atributo HomeAddress porque a tabela Employees não armazena os endereços residenciais dos colaboradores. Como resultado, este atributo não é mapeado para a base de dados e não é devolvido no documento XML resultante quando uma consulta XPath é especificada contra o esquema de mapeamento.
O mapeamento padrão ocorre para o resto do esquema. O <elemento Pessoa.Contacto> corresponde à tabela Pessoa.Contacto, e todos os atributos correspondem às colunas com o mesmo nome na tabela Pessoa.Contacto.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="Person.Contact">
<xsd:complexType>
<xsd:attribute name="ContactID" type="xsd:string"/>
<xsd:attribute name="FirstName" type="xsd:string" />
<xsd:attribute name="LastName" type="xsd:string" />
<xsd:attribute name="HomeAddress" type="xsd:string"
sql:mapped="false" />
</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 sql-mapped.xml.
Copie o modelo seguinte e cole-o num ficheiro de texto. Guarda o ficheiro como sql-mappedT.xml no mesmo diretório onde guardaste sql-mapped.xml.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="sql-mapped.xml"> /Person.Contact[@ContactID < 10] </sql:xpath-query> </ROOT>O caminho do diretório especificado para o esquema de mapeamento (MySchema.xml) é relativo ao diretório onde o modelo é guardado. Um caminho absoluto também pode ser especificado, por exemplo:
mapping-schema="C:\MyDir\sql-mapped.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.
Este é o conjunto de resultados:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Person.Contact ContactID="1" FirstName="Gustavo" LastName="Achong" />
<Person.Contact ContactID="2" FirstName="Catherine" LastName="Abel" />
<Person.Contact ContactID="3" FirstName="Kim" LastName="Abercrombie" />
<Person.Contact ContactID="4" FirstName="Humberto" LastName="Acevedo" />
<Person.Contact ContactID="5" FirstName="Pilar" LastName="Ackerman" />
<Person.Contact ContactID="6" FirstName="Frances" LastName="Adams" />
<Person.Contact ContactID="7" FirstName="Margaret" LastName="Smith" />
<Person.Contact ContactID="8" FirstName="Carla" LastName="Adams" />
<Person.Contact ContactID="9" FirstName="Jay" LastName="Adams" />
</ROOT>
Note que o ContactID, Primeiro Nome e Apelido estão presentes, mas HomeAddress não está porque o esquema de mapeamento especificava 0 para o atributo sql:mapped .
Ver também
Mapeamento por Defeito de Elementos e Atributos XSD para Tabelas e Colunas (SQLXML 4.0)