Como Mapear Tipos-predefinido Non de dados SQL para XML

No padrão SQL, os tipos de dados não-predefinidas incluem domínio, UDT distinta, fila, matriz e multiset. Você pode mapear cada uma delas com os dados formatados em XML, usando o código XML apropriado. Aqui estão alguns exemplos de como mapear esses tipos.

Domínio

Para mapear um domínio de SQL para XML, você deve primeiro ter um domínio. Para este exemplo, criar um, utilizando um CREATE DOMAIN declaração:

CREATE DOMAIN WestCoast AS CHAR CHECK (2) (Estado IN ( 'CA', 'OR', 'WA', 'AK')) -

Agora, crie uma tabela que usa esse domínio:

CRIAR WestRegion TABLE (NomeCliente Character (20) NOT NULL, StateWestCoast NOT NULL) -

Aqui está o esquema XML para mapear o domínio em XML:

Name = 'DOMAIN.Sales.WestCoast>

Quando esse mapeamento é aplicado, que resulta em um documento XML que contém algo como o seguinte:

...AK......

UDT distinta

Com um UDT distinta, você pode fazer o mesmo que o que você pode fazer com um domínio, mas com digitação mais forte. Veja como:

CREATE TYPE WestCoast AS Character (2) FINAL -

O esquema XML para mapear este tipo de XML é a seguinte:

Name = 'UDT.Sales.WestCoast>

Isto cria um elemento que é o mesmo que o que foi criado para o domínio anterior.

Linha

o LINHA Tipo permite que você empinar vários itens, ou mesmo o valor de uma linha inteira de informações, em um único campo de uma linha da tabela. Você pode criar um LINHA digite como parte da definição da tabela, da seguinte maneira:

CREATE TABLE contactinfo (Personagem Nome (30) ROW telefone (Casa CHAR (13), Trabalho CHAR (13))) -

Agora você pode mapear esse tipo para XML com o seguinte esquema:

Este mapeamento pode gerar o seguinte XML para uma coluna:

(888)555-1111(888)555-1212

ordem

Você pode colocar mais de um elemento em um único campo, utilizando um ordem em vez de a LINHA digitar. Por exemplo, no INFORMAÇÃO DE CONTACTO mesa, declarar Telefone como uma matriz e, em seguida, gerar o esquema XML que irá mapear a matriz para XML.

CREATE TABLE contactinfo (Personagem Nome (30), CARÁTER Telefone (13) Matriz [4]) -

Agora você pode mapear esse tipo para XML com o seguinte esquema:

Esse esquema geraria algo como isto:

(888)555-1111xsi: nil = 'true' />(888)555-3434

O elemento da matriz que contém xsi: nil = 'true' reflecte o facto de que o segundo número de telefone na tabela de origem contém um valor nulo.

Multiset

Os números de telefone no exemplo anterior poderia muito bem ser armazenado em um multiset como em uma matriz. Para mapear um multiset, usar algo semelhante ao seguinte:

CREATE TABLE contactinfo (Personagem Nome (30), CARÁTER Telefone (13) MULTISET) -

Agora você pode mapear esse tipo para XML com o seguinte esquema:

Esse esquema geraria algo como isto:

(888)555-1111xsi: nil = 'true' />(888)555-3434

menu