Sdílet prostřednictvím


Požadavek na URL odkazy na data BLOB pomocí sql:encode (SQLXML 4.0)

platí pro:SQL Serverazure SQL Database

V anotovaném XSD schématu, když je atribut (nebo prvek) namapován na sloupec BLOB v Microsoft SQL Serveru, data jsou vrácena ve formátu kódovaném v Base 64 v rámci XML.

Pokud chcete, aby se vrátila reference na data (URI), která může být později použita k získání BLOB dat v binárním formátu, specifikujte sql :encode anotaci. Můžete specifikovat sql:encode na atributu nebo prvku jednoduchého typu.

Specifikujte anotaci sql:encode , která označí, že místo hodnoty pole by měla být vrácena URL adresa. sql:encode závisí na primárním klíči pro generování singleton select v URL. Primární klíč lze zadat pomocí anotace sql:key-fields .

Anotaci sql:encode lze přiřadit hodnotu "url" nebo "default". Hodnota "výchozí" vrací data ve formátu kódovaném v Base 64.

Anotace sql:encode nelze použít s sql:use-cdata ani na typy atributů ID, IDREF, IDREFS, NMTOKEN nebo NMTOKENS. Nelze jej také použít s pevnou atributem XSD.

Poznámka:

Sloupce typu BLOB nelze použít jako součást klíče nebo cizího klíče.

Examples

Pro vytvoření pracovních vzorků podle následujících příkladů musíte splnit určité požadavky. Pro více informací viz Požadavky na spouštění SQLXML Examples.

A. Specifikace sql:encode pro získání URL odkazu na data BLOB

V tomto příkladu mapovací schéma specifikuje sql:encode na atributu LargePhoto pro získání URI odkazu na konkrétní produktovou fotografii (místo načtení binárních dat ve formátu kódovaném v Base 64).

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"  
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">  
  
  <xsd:element name="ProductPhoto" sql:relation="Production.ProductPhoto"   
               sql:key-fields="ProductPhotoID" >  
   <xsd:complexType>  
      <xsd:attribute name="ProductPhotoID"  type="xsd:int"  />  
     <xsd:attribute name="LargePhoto" type="xsd:string" sql:encode="url" />  
    </xsd:complexType>  
  </xsd:element>  
</xsd:schema>  
Pro testování vzorku dotazu XPath proti schématu
  1. Zkopírujte výše uvedený kód schématu a vložte ho do textového souboru. Uložte soubor jako sqlEncode.xml.

  2. Zkopírujte následující šablonu a vložte ji do textového souboru. Ulož soubor jako sqlEncodeT.xml do stejného adresáře, kde jsi uložil sqlEncode.xml.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
        <sql:xpath-query mapping-schema="sqlEncode.xml">  
            /ProductPhoto[@ProductPhotoID=100]  
        </sql:xpath-query>  
    </ROOT>  
    

    Adresářová cesta určená pro mapovací schéma (sqlEncode.xml) je relativní k adresáři, ve kterém je šablona uložena. Absolutní cestu lze také specifikovat, například:

    mapping-schema="C:\SqlXmlTest\sqlEncode.xml"  
    
  3. Vytvořte a použijte testovací skript SQLXML 4.0 (Sqlxml4test.vbs) k provedení šablony.

    Další informace naleznete v tématu Použití ADO ke spouštění dotazů SQLXML 4.0.

Toto je výsledek:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
   <ProductPhoto ProductPhotoID="100"  
                 LargePhoto="dbobject/Production.ProductPhoto[@ProductPhotoID="100"]/@LargePhoto" />   
</ROOT>