Catégories :

Fonctions de données semi-structurées et structurées (Parsing)

CHECK_XML

Vérifie la validité d’un document XML. Si la chaîne d’entrée est NULL ou un document XML valide, le résultat est NULL. En cas d’erreur d’analyse XML, la chaîne de sortie contient le message d’erreur.

Voir aussi :

PARSE_XML

Syntaxe

CHECK_XML( <string_containing_xml> [ , <disable_auto_convert> ] )
Copy
CHECK_XML( STR => <string_containing_xml>
  [ , DISABLE_AUTO_CONVERT => <disable_auto_convert> ] )
Copy

Arguments

Obligatoire :

string_containing_xml . OR . STR => string_containing_xml

Cette expression devrait correspondre à une valeur VARCHAR. La valeur VARCHAR doit être au formatXML valide.

Facultatif :

disable_auto_convert . OR . DISABLE_AUTO_CONVERT => disable_auto_convert

Spécifiez la même valeur que celle que vous passez à la fonction PARSE_XML.

Par défaut : FALSE

Renvoie

Le type de données de la valeur renvoyée est VARCHAR.

Notes sur l’utilisation

  • Vous devez spécifier tous les arguments soit par leur nom, soit par leur position. Vous ne pouvez pas spécifier certains arguments par leur nom et d’autres par leur position.

    Lorsque vous spécifiez un argument par son nom, vous ne pouvez pas utiliser de guillemets doubles autour du nom de l’argument.

Exemples

Montrer la sortie de la fonction quand le XML est valide

SELECT CHECK_XML('<name> Valid </name>');
+-----------------------------------+
| CHECK_XML('<NAME> VALID </NAME>') |
|-----------------------------------|
| NULL                              |
+-----------------------------------+
Copy

Montrer la sortie de la fonction lorsque le XML n’est pas valide

SELECT CHECK_XML('<name> Invalid </WRONG_CLOSING_TAG>');
+--------------------------------------------------+
| CHECK_XML('<NAME> INVALID </WRONG_CLOSING_TAG>') |
|--------------------------------------------------|
| no opening tag for </WRONG_CLOSING_TAG>, pos 35  |
+--------------------------------------------------+
Copy

Localiser les enregistrements avec des données XML non valides

SELECT xml_str, CHECK_XML(xml_str)
    FROM my_table
    WHERE CHECK_XML(xml_str) IS NOT NULL;
Copy