Udostępnij za pośrednictwem


Za pomocą sql:pole (schematu XDR)

Ważna informacjaWażne:

Ten temat jest dołączane jako odniesienia dla starszych aplikacji.Żadna praca przyszłego rozwoju są wykonywane z tej funkcji.Unikaj używania tej funkcji w nowych prac rozwojowych.Zamiast tego użyj adnotacjami schematów XSD tworzenia widoków XML.Aby uzyskać więcej informacji, zobacz Wprowadzenie do adnotacjami schematów XSD (SQLXML 4.0).Można przekonwertować istniejące schematy XDR adnotacjami schematów XSD.Aby uzyskać więcej informacji, zobacz Konwertowanie adnotacjami schematy XDR równoważne schematów XSD (SQLXML 4.0).

sql:field Adnotacji Określa mapowanie między element lub atrybut w schemacie adnotacjami do kolumna w bazie danych i może być dodana do elementu lub atrybutu.sql:field Adnotacji są ignorowane na <AttributeType> elementów schematu adnotacjami.sql:field Atrybut Nazwa mapowanej kolumna w tabela lub widoku.

Na przykład sql:field można określić nazwę kolumna, gdy taka nazwa nie jest zgodna z pole w schemacie określonych w XDR.Wartość sql:field musi mieć nazwę kolumna.Czteroczęściowym kolumna nazwy takie jak database.owner.tabela.kolumnanazwy nie są dozwolone.Dotyczy to wszystkich adnotacji, których nazwa kolumna jako jego wartość.

Przykłady

Aby utworzyć próbki pracy przy użyciu poniższych przykładach, musi spełniać określone wymagania.Aby uzyskać więcej informacji, zobacz Wymagania dotyczące uruchamianie przykładów SQLXML.

A.Określ sql:pole dla <atrybut> schematu XDR

W tym schemacie adnotacjami sql:field adnotacji jest określona na <atrybut> elementu schematu.sql:field Mapy atrybut E-mail atrybut w schemacie AdresEmail, kolumna w tabela Person.Person.

Ponieważ nazwa atrybut BusinessEntityID w XDR schematu jest taka sama jak kolumna BusinessEntityID w tabela Person.Person sql:field nie jest określony.Mapowanie jest domyślnie.

<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
        xmlns:dt="urn:schemas-microsoft-com:datatypes"
        xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<ElementType name="Contacts" sql:relation="Person.Person" >
    <AttributeType name="BusinessEntityID" />
    <AttributeType name="Email" />
    <attribute type="BusinessEntityID" />
    <attribute type="Email" sql:field="EmailAddress" />
</ElementType>
</Schema>

Aby przetestować przykładowe kwerendy XPath względem schematu

  1. Kod schematu skopiować i wkleić go do pliku tekstowego.Zapisz plik jako sqlFieldXdr.xml.

  2. Skopiuj następujący szablon i wkleić go do pliku tekstowego.Zapisz plik jako sqlFieldXdrT.xml w tym samym katalogu, w którym zapisano sqlFieldXdr.xml.Kwerenda w szablonie wybiera odbiorcy z BusinessEntityID 1.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
      <sql:xpath-query mapping-schema="sqlFieldXdr.xml">
        /Contacts[@BusinessEntityID="1"]
      </sql:xpath-query>
    </ROOT>
    

    Ścieżka katalogu określonego dla mapowania schematu (sqlFieldXdr.xml) jest katalog, w którym zapisany szablon.Ścieżka bezwzględna również można określić, na przykład:

    mapping-schema="C:\SqlXmlTest\sqlFieldXdr.xml"
    
  3. Tworzenie i używanie szablon wykonać skryptu testu 4.0 SQLXML (Sqlxml4test.vbs).

    Aby uzyskać więcej informacji, zobacz Przy użyciu ADO SQLXML wykonanie kwerendy 4.0.

Oto częściowe zestaw wyników:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> 
  <Contacts BusinessEntityID="1" Email="gustavo0@adventure-works.com" /> 
</ROOT>

W schemacie mapowania atrybut może globalnie deklarowana (na przykład <AttributeType...>, zadeklarowanych poza zakres z <element ElementType>), a potem przywoływany w <atrybut typu =...>, jak pokazano w schemacie.

W tym schemacie nazwisko atrybut jest zadeklarowana globalnie i odwołanie do zakres klienta <element ElementType>.

<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
        xmlns:dt="urn:schemas-microsoft-com:datatypes"
        xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<AttributeType name="LastName" />
<ElementType name="Contacts" sql:relation="Person.Person" >
    <AttributeType name="BusinessEntityID" />
    <AttributeType name="FName" />
    <AttributeType name="LName" />
    
    <attribute type="CustomerID" />
    <attribute type="FName" sql:field="FirstName" />
    <attribute type="LName" sql:field="LastName" />
</ElementType>
</Schema>

B.Określ sql:pole dla <elementu> w schematu XDR

W tym schemacie adnotacjami sql:field adnotacji jest określona na <elementu> w schemacie.sql:field Mapy adnotacji <E-mail> element podrzędność w schemacie AdresEmail kolumna w tabela Person.Person.

Bez wyraźnego adnotacji <E-mail> element podrzędność <Kontakty> element w schemacie nie będzie mapować AdresEmail kolumna w tabela Person.Person, ponieważ domyślnego mapowania elementów do relacji, a nie do pole (wyjątek występuje po <element ElementType> zawiera textOnly atrybut).

<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
        xmlns:dt="urn:schemas-microsoft-com:datatypes"
        xmlns:sql="urn:schemas-microsoft-com:xml-sql">
  <ElementType name="Email" />
  <ElementType name="Contacts" sql:relation="Person.Person" >
    <AttributeType name="BusinessEntityID" />

    <attribute type="BusinessEntityID" />
    <element type="Email" sql:field="EmailAddress" />
  </ElementType>
</Schema>

Aby przetestować przykładowe kwerendy XPath względem schematu

  1. Kod schematu skopiować i wkleić go do pliku tekstowego.Zapisz plik jako sqlFieldElementXdr.xml.

  2. Skopiuj następujący szablon i wkleić go do pliku tekstowego.Zapisz plik jako sqlFieldElementXdrT.xml w tym samym katalogu, w którym zapisano sqlFieldElementXdr.xml.Kwerenda w szablonie wybiera odbiorcy z BusinessEntityID 1.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
      <sql:xpath-query mapping-schema="sqlFieldElementXdr.xml">
        /Contacts[@BusinessEntityID="1"]
      </sql:xpath-query>
    </ROOT>
    

    Ścieżka katalogu określonego dla mapowania schematu (sqlFieldElementXdr.xml) jest katalog, w którym zapisany szablon.Ścieżka bezwzględna również można określić, na przykład:

    mapping-schema="C:\SqlXmlTest\sqlFieldElementXdr.xml"
    
  3. Tworzenie i używanie szablon wykonać skryptu testu 4.0 SQLXML (Sqlxml4test.vbs).

    Aby uzyskać więcej informacji, zobacz Przy użyciu ADO SQLXML wykonanie kwerendy 4.0.

Oto częściowe zestaw wyników:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> 
  <Contacts BusinessEntityID="1"> 
    <Email>gustavo0@adventure-works.com</Email> 
  </Contacts> 
</ROOT>

Jeśli content="textOnly" jest określona na adres e-mail <element ElementType> i jest używana domyślna nazwa kolumna SQL ("AdresEmail"), sql:field adnotacji nie jest wymagana w podrzędność elementu.W takim przypadek <AdresEmail> element podrzędność będzie mapować do AdresEmail kolumna w tabela Person.Person.

<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
        xmlns:dt="urn:schemas-microsoft-com:datatypes"
        xmlns:sql="urn:schemas-microsoft-com:xml-sql">
  <ElementType name="EmailAddress" content="textOnly" />
  <ElementType name="Contacts" sql:relation="Person.Person" >
    <AttributeType name="BusinessEntityID" />

    <attribute type="BusinessEntityID" />
    <element type="EmailAddress" />
  </ElementType>
</Schema>

Zobacz także

Odwołanie