Como usar o SQL Predicados com XML
predicados
devolver um valor de Verdadeiro ou Falso. Alguns novos predicados foram adicionados ao SQL que especificamente se relacionam com XML. Isto pode ser útil para reduzir significativamente a sua carga de trabalho.DOCUMENTO
O objectivo da DOCUMENTO predicado é determinar se um valor XML é um documento XML. Ele testa para ver se um valor XML é uma instância de qualquer XML (QUALQUER DOCUMENTO) ou XML (DOCUMENTO Untyped). A sintaxe é:
XML-valor [não] é [QUALQUER | Untyped] DOCUMENTO
Se a expressão for avaliada como True, o predicado retorna VERDADE- caso contrário, retorna FALSO. Se o valor XML é nulo, o predicado retorna uma DESCONHECIDO valor. Se você não especificar QUALQUER ou Untyped, o padrão é pressuposto QUALQUER.
CONTEÚDO
Você usa o CONTEÚDO predicado para determinar se um valor XML é um exemplo de XML (QUALQUER CONTEÚDO) ou XML (CONTEÚDO Untyped). Aqui está a sintaxe:
XML-valor [não] é [QUALQUER | Untyped] CONTEÚDO
Se você não especificar QUALQUER ou Untyped, QUALQUER é o padrão.
XMLEXISTS
Como o nome indica, você pode usar o XMLEXISTS predicado para determinar se existe um valor. Aqui está a sintaxe:
XMLEXISTS (XQuery-expressão [argumento da lista])
A expressão XQuery é avaliada usando os valores fornecidos na lista de argumentos. Se o valor consultado pela expressão XQuery é o SQL NULO valor, o resultado do predicado é desconhecido. Se a avaliação retorna uma sequência XQuery vazio, o resultado do predicado é FALSO- caso contrário, é VERDADE.
Você pode usar esse predicado para determinar se um documento XML contém conteúdo particular antes de usar uma parte desse conteúdo em uma expressão.
VÁLIDO
o VÁLIDO predicado é usado para avaliar um valor XML para ver se ele é válido no contexto de um esquema XML registrado. A sintaxe do VÁLIDO predicado é mais complexa do que é o caso para a maioria dos predicados:
xml-valor [não] é VÁLIDO [XML opção de identidade restrição válida] [XML válido de acordo com a cláusula-]
Este predicado verifica para ver se o valor XML é um dos cinco subtipos XML: XML (SEQUÊNCIA), XML (QUALQUER CONTEÚDO), XML (CONTEÚDO Untyped), XML (QUALQUER DOCUMENTO), ou XML (DOCUMENTO Untyped). Além disso, ele pode, opcionalmente, verificar para ver se a validade do valor XML depende de restrições de identidade, e se ele é válido em relação a um esquema XML particular (o alvo de validade).
Existem quatro possibilidades para a identidade restrição-option componente da sintaxe:
SEM restrições de identidade: Se o identidade-constraint-componente sintaxe opção não for especificada, SEM restrições de identidade é assumido. E se DOCUMENTO é especificado, então ele age como uma combinação do DOCUMENTO predicado eo VÁLIDO predicado Com restrições de identidade global.
Com restrições de identidade global: Este componente da sintaxe significa que o valor é verificada não só contra o esquema XML, mas também contra as regras XML para relações ID / IDREF.
ID e IDREF são XML tipos de atributos que identificam elementos de um documento.
Com restrições de identidade local: Este componente da sintaxe significa que o valor é comparado com o esquema XML, mas não contra as regras XML para ID / IDREF ou as regras de esquema XML para restrições de identidade.
DOCUMENTO: Este componente da sintaxe significa que a expressão de valor XML é um documento e é válido Com restrições de identidade global com uma sintaxe XML válido de acordo com cláusula. o XML válido de acordo com cláusula identifica o esquema que o valor será validado contra.