Alterações no comportamento de análise e emissão de XML¶
Atenção
Essa mudança de comportamento está no pacote 2025_01.
Para saber o status atual do pacote, consulte Histórico do pacote.
Quando esse pacote de alteração de comportamento está ativado, a análise e a emissão do conteúdo XML são alteradas ao usar o comando COPY INTO <tabela> com o formato de arquivo XML e ao chamar as seguintes funções:
- Antes da mudança:
Comportamento de análise e emissão de XML:
Algumas consultas que chamam a função CHECK_XML retornam uma cadeia de caracteres com uma mensagem de erro.
Algumas consultas que chamam a função PARSE_XML falham.
- Após a mudança:
Comportamento de análise e emissão de XML:
Algumas consultas que retornavam uma cadeia de caracteres com uma mensagem de erro ao chamar a função CHECK_XML antes da alteração agora retornam NULL.
Algumas consultas que falharam ao chamar a função PARSE_XML antes da alteração agora são bem-sucedidas, e a função retorna o XML analisado.
Consultas com cadeias de caracteres XML contendo colchetes angulares ou apóstrofos retornam resultados diferentes após a alteração.
Consultas com cadeias de caracteres XML contendo espaço em branco ou atributos XML relacionados à preservação de espaço em branco retornam resultados diferentes após a alteração.
As seções a seguir fornecem mais detalhes sobre as alterações.
Análise do conteúdo XML que contém instruções de processamento¶
O exemplo a seguir usa a função PARSE_XML para analisar o conteúdo XML com pontos de interrogação nas instruções de processamento:
- Retornado antes da mudança::
- Retornado após a mudança::
Análise do conteúdo XML que contém colchetes angulares ou apóstrofos¶
O exemplo a seguir usa a função PARSE_XML para analisar o conteúdo XML que contém colchetes angulares e apóstrofos nos valores de atributos XML. Após a alteração, os apóstrofos e os colchetes angulares nos valores do atributo XML são escapados corretamente no valor de retorno e no XML emitido:
- Retornado antes da mudança::
- Retornado após a mudança::
Análise do conteúdo XML que contém entidades definidas pelo usuário¶
O exemplo a seguir usa a função PARSE_XML para analisar o conteúdo XML que contém entidades definidas pelo usuário:
- Retornado antes da mudança::
- Retornado após a mudança::
Análise do conteúdo XML que preserva espaços em branco¶
Essa alteração foi feita para que o comportamento no Snowflake corresponda à especificação XML com relação à preservação de espaços em branco:
Antes da alteração, os espaços em branco eram preservados para o atributo
xsl:space="preserve". Após a alteração, os espaços em branco não são preservados para o atributoxsl:space="preserve".Antes da alteração, os espaços em branco não eram preservados para o atributo
xml:space="preserve". Após a alteração, os espaços em branco são preservados para o atributoxml:space="preserve".
O exemplo a seguir usa a função PARSE_XML para analisar o conteúdo XML e especifica o atributo xsl:space="preserve":
- Retornado antes da mudança::
- Retornado após a mudança::
O exemplo a seguir usa a função PARSE_XML para analisar o conteúdo XML e especifica o atributo xml:space="preserve":
- Retornado antes da mudança::
- Retornado após a mudança::
Carregamento do conteúdo XML que preserva espaços em branco¶
O exemplo a seguir carrega dados em uma tabela usando o comando COPY INTO <table>. O parâmetro PRESERVE_SPACE é definido como TRUE para preservar espaços em branco:
- Conteúdo carregado antes da alteração::
- Conteúdo carregado após a alteração::
Antes e depois da alteração, o conteúdo preserva espaços em branco, mas o atributo muda de xsl:space="preserve" para xml:space="preserve".
Ref: 1862