Linguagem de modificação de dados XML (XML DML)

A linguagem de Modificação de Dados XML (XML DML) é uma extensão da linguagem XQuery. Como definido por W3C, a linguagem XQuery é desprovida da parte de Manipulação de Dados (DML). A XML DML apresentada neste tópico, além da linguagem XQuery, oferece uma consulta totalmente funcional e linguagem de modificação de dados que pode ser usada no tipo de dados xml.

A XML DML acrescenta as seguintes palavras-chave que diferenciam maiúsculas e minúsculas à XQuery:

  • insert

  • delete

  • replace value of

Conforme descrito em Tipo de dados xml, você pode criar variáveis e colunas do tipo xml e atribuir documentos ou fragmentos XML aos mesmos. Para modificar ou atualizar essas instâncias de XML, faça o seguinte:

Observe que há alguns atributos que não podem ser inseridos, excluídos ou ter seus valores modificados. Por exemplo:

  • Para xml tipado ou não tipado, os atributos são xmlns, xmlns: * e xml:base.

  • Apenas para xml tipado, os atributos são xsi:nil e xsi:type.

Outras restrições incluem o seguinte:

  • Para xml tipado ou não tipado, a inserção do atributoxml:base falhará.

  • Para xml tipado, a exclusão e a modificação do atributo xsi:nil falharão. Para xml não tipado, você pode excluir o atributo ou modificar seu valor.

  • Para xml tipado, a modificação do valor do atributo xs:type falhará. Para xml não tipado, você pode modificar o valor do atributo.

Quando você modifica uma instância XML tipada, o formato final deve ser uma instância válida desse tipo. Caso contrário, é retornado um erro de validação.