Maison  >  Article  >  développement back-end  >  Utilisation de modèles XML (Manuel MSSQL)

Utilisation de modèles XML (Manuel MSSQL)

黄舟
黄舟original
2017-03-01 16:40:221365parcourir

Voici la forme générale d'un modèle, montrant comment spécifier des requêtes SQL et des requêtes XPath :

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql" 
       sql:xsl=&#39;XSL FileName&#39; > 
  <sql:header> 
    <sql:param>..</sql:param> 
    <sql:param>..</sql:param>...n 
  </sql:header> 
  <sql:query> 
    sql statement(s) 
  </sql:query> 
  <sql:xpath-query mapping-schema="SchemaFileName.xml"> 
    XPath query 
  </sql:xpath-query> 
</ROOT>

Tout élément du modèle est facultatif. Les éléments 1aa9e5d373740b65a0cc8f0a02150c53, 0c68fef83818661b6da588c77ca3985e, 708654619547c0a0fe5e1defc275b0b6, 57dbe22da5230054e8cffe8ae1f3024c et le schéma de mappage d'attributs sont définis dans l'espace de noms SQL. Par conséquent, xmlns:sql="urn:schemas-microsoft-com:xml-sql" doit être déclaré dans l'espace de noms. Vous pouvez nommer l'espace de noms comme vous le souhaitez ; SQL n'est qu'un alias.

b3e08f117497c93350eaf67fc4b5f7c5

Spécifiez cette balise pour fournir un seul élément de niveau supérieur (également appelé balise racine) du document XML résultant. La balise b3e08f117497c93350eaf67fc4b5f7c5 peut porter n'importe quel nom.

a7047a4cd2c47b5ef55f8f44976e7bb5

Cette balise est utilisée pour enregistrer toutes les valeurs d'en-tête. Dans l'implémentation actuelle, seul l'élément 890d0d6974fb473141d6fe1ce33c7b9b peut être spécifié dans cette balise. a7047a4cd2c47b5ef55f8f44976e7bb5 est utilisé comme balise d'inclusion, vous permettant de définir plusieurs paramètres. Toutes les définitions de paramètres se trouvent au même endroit, ce qui rend le traitement des définitions de paramètres plus efficace.

890d0d6974fb473141d6fe1ce33c7b9b

Cet élément permet de définir les paramètres passés à la requête au sein du modèle. Chaque élément 0c68fef83818661b6da588c77ca3985e définit un paramètre. Plusieurs éléments 0c68fef83818661b6da588c77ca3985e peuvent être définis dans la balise a7047a4cd2c47b5ef55f8f44976e7bb5

610cd9e9a8df248833435b157c4f03a6

Cet élément est utilisé pour spécifier une requête SQL. Plusieurs éléments 610cd9e9a8df248833435b157c4f03a6 peuvent être spécifiés dans un modèle.

ce8aaecb80f1b7f3ef757febb0ffa6c4

Cet élément est utilisé pour spécifier une requête XPath. Étant donné que les requêtes XPath sont exécutées sur un schéma XDR (XML Data Reduction) annoté, le nom du fichier de schéma doit être spécifié à l'aide de l'attribut mapping-schema.

sql:xsl

Cet attribut est utilisé pour spécifier la feuille de style XSL (Extensible Stylesheet Language) qui sera appliquée au document XML résultant. Lorsque vous spécifiez un fichier de schéma de mappage, vous pouvez spécifier un chemin relatif ou absolu. Le chemin relatif spécifié est relatif au répertoire associé au nom virtuel du type de modèle. Par exemple, si le répertoire associé au nom virtuel du type de modèle est C:Template, le chemin relatif spécifié pour sql:xsl Xyz/MyXSL.xml sera mappé à C:TemplateXyzMyXSL.xml.

mapping-schema

Cet attribut est utilisé pour identifier le schéma XDR annoté. Spécifiez cet attribut uniquement lors de l'exécution d'une requête XPath dans le modèle. Les requêtes XPath sont exécutées sur des schémas XDR annotés. Lorsque vous spécifiez un fichier de schéma de mappage, vous pouvez spécifier un chemin relatif ou absolu. Le chemin relatif spécifié est relatif au répertoire associé au nom virtuel du type de modèle. Par exemple, si le répertoire associé au nom virtuel du type de modèle est C:Template, le chemin relatif (schema/MSchema.xml spécifié pour mapping-schema) est mappé à C:TemplateSchemaMSchema.xml.

Description Chaque 610cd9e9a8df248833435b157c4f03a6 ou ca6c78e2cea03519505bd5cf9d5b0c5e Par conséquent, si vous avez plusieurs balises 610cd9e9a8df248833435b157c4f03a6 ou ca6c78e2cea03519505bd5cf9d5b0c5e dans un modèle, lorsque l’une échoue, les autres continuent.

Si le type de contenu est défini, Sqlisapi.dll renvoie les informations d'en-tête au navigateur. Si contenttype n'est pas défini, urlmon utilise le premier caractère du fichier modèle pour déterminer le type de contenu. Si le premier caractère du modèle est un caractère < ou la marque d'ordre des octets Unicode (0xFFFE), text/xml est renvoyé au navigateur en tant que type de contenu et le navigateur affiche le résultat. Sinon, Sqlisapi.dll n'envoie pas les informations d'en-tête de type de contenu qui indiquent au navigateur comment afficher les résultats. Par conséquent, les résultats ne seront pas visibles dans le navigateur ;

Avant de pouvoir spécifier un modèle dans un modèle d'URL, vous devez créer un nom virtuel de type modèle à l'aide de l'utilitaire de gestion de répertoire virtuel IIS pour SQL Server. Pour plus d'informations, consultez Utilisation de l'utilitaire de gestion de répertoire virtuel IIS pour SQL Server.

Stockage des modèles
Les modèles sont stockés dans le répertoire associé à un nom virtuel de type template ou un de ses sous-répertoires :

Si le modèle est stocké dans un répertoire associé à un nom virtuel de type template , la requête URL a la forme :

http://IISServer/nwind/TemplateVirtualName/TemplateFile.xml

Si le modèle est stocké dans un sous-répertoire associé au nom virtuel du type de modèle (xyz), la requête URL a la forme :

http://IISServer/nwind/TemplateVirtualName/xyz/TemplateFile.xml

Les espaces de noms ne sont pas pris en charge pour les requêtes XPath spécifiées directement dans l'URL. Si vous souhaitez utiliser des espaces de noms dans les requêtes XPath, vous devez utiliser le modèle

Ce qui précède est le contenu de l'utilisation des modèles XML (manuel MSSQL. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn ) !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn