Udostępnij za pośrednictwem


Używanie trybu JAWNE

Jak opisano w temacie, Konstruowania XML przy użyciu dla XML, surowców i automatyczny tryb nie zapewniają poziom kontroli nad kształtem XML generowany w wyniku kwerendy.Jednak tryb JAWNE zapewnia największą elastyczność w generowania XML ma z wyniku kwerendy.

Kwerendę trybu JAWNE musi być napisana w określony sposób, tak aby dodatkowe informacje wymagane XML, takich jak oczekiwana zagnieżdżanie w formacie XML, jest wyraźnie określony jako część kwerendy.W zależności od XML żądania pisania JAWNE trybu kwerend może być uciążliwe.Może się okazać, że Przy użyciu trybu ścieżki z zagnieżdżanie jest prostsze zamiast pisania kwerend trybu JAWNE.

Ponieważ opisują XML ma być częścią kwerendy w trybie JAWNE, należy się upewnić, że XML generowany jest dobrze uformowane i prawidłowe.

Zestaw wierszy przetwarzania w trybie JAWNE

Tryb JAWNE przekształca zestawu zestaw wierszy, wyniki z wykonania kwerendy do dokumentu XML.Tryb JAWNE do utworzenia dokumentu XML, zestaw wierszy muszą mieć określony format.Wymaga to zapisywać kwerendy WYBIERAJĄCEJ do wytwarzania zestawu zestaw wierszy, universal tabela, z określonym formacie tak logiki przetwarzania może następnie wygenerować XML ma.

Najpierw kwerendy musi mieć następujące dwie kolumny metadane:

  • Pierwsza kolumna musi dostarczyć tag, całkowitą typ number, bieżącego elementu i nazwa kolumny muszą być Tag.Kwerendy należy podać numer unikatowy tag dla każdego elementu, który zostanie zbudowana z zestawu zestaw wierszy.

  • Druga kolumna należy podać numer etykiety elementu nadrzędnego i nazwa kolumny musi być nadrzędnego.W ten sposób znacznika i nadrzędnej kolumna dostarcza informacje o hierarchii.

Te wartości kolumna metadane, wraz z informacjami w nazwy kolumn są używane do wyprodukowania XML ma.Należy zauważyć, że kwerendy należy podać kolumna nazwy w określony sposób.Ponadto należy zauważyć, że 0 lub wartość NULL w nadrzędnego kolumna wskazuje, że odpowiadającego im elementu nie ma obiektu nadrzędnego.Element jest dodawany do pliku XML jako element najwyższego poziom.

Aby zrozumieć sposób przetwarzania universal tabela wygenerowane przez kwerendę do generowania wyników XML, przyjmijmy zaprojektowało kwerendę, która daje to uniwersalny tabela:

Przykładowa tabela uniwersalna

Należy pamiętać o tej tabela universal następujące:

  • Pierwsze dwie kolumny są Tag i nadrzędnego i meta kolumn.Te wartości określają hierarchii.

  • kolumna Nazwy są określone w sposób opisany w dalszej części tego tematu.

  • Do generowania kodu XML z tej tabela uniwersalnej, dane w tej tabela jest podzielony na partycje pionowo kolumna grupy.Grupowanie jest określana na podstawie Tag wartość i kolumna nazwy.Przy konstruowaniu XML, logiki przetwarzania wybiera jedną grupę kolumn dla każdego wiersza i konstrukcje elementu.Mają zastosowanie w tym przykładzie:

    • Dla Tag kolumna wartości 1 w pierwszym wierszu kolumna, których nazwy zawierają ten sam numer znacznika klienta! 1! cid i **klienta! 1! Nazwa formularza grupę.**Te kolumny są używane podczas przetwarzania wiersza i może zauważono że kształtu wygenerowany element jest <Customer id=... name=...>.Dalej w tym temacie opisano format nazwy kolumny.

    • Dla wierszy z Tag wartość kolumna 2, kolumna kolejności! 2! identyfikator i kolejności! 2! data tworzą grupę, która jest następnie używana przy konstruowaniu elementów, <Order id=... date=... />.

    • Dla wierszy z Tag wartość kolumna 3, kolumna OrderDetail! 3! identyfikator! id i OrderDetail! 3! pid! idref tworzą grupę.Każdy z tych wierszy generuje elementu, <OrderDetail id=... pid=...>, z tych kolumn.

  • Należy zauważyć, że do generowania hierarchii XML, wiersze są przetwarzane w kolejności.Hierarchii XML jest określana, jak pokazano poniżej:

    • Określa pierwszy wiersz Tag wartość 1 i nadrzędnego wartość NULL.Dlatego odpowiadającego im elementu <Customer> element, dodaje się jako element najwyższego poziom XML.

      <Customer cid="C1" name="Janine">
      
    • Drugi wiersz identyfikuje Tag wartość 2 i nadrzędnego wartość 1.Dlatego elementu <Order> element, jest dodawany jako element podrzędność <Customer> elementu.

      <Customer cid="C1" name="Janine">
         <Order id="O1" date="1/20/1996">
      
    • Następne dwa wiersze zidentyfikować Tag wartość 3 i nadrzędnego wartość 2.Dlatego dwóch elementów, <OrderDetail> elementów, są dodawane jako obiekty podrzędne <Order> elementu.

      <Customer cid="C1" name="Janine">
         <Order id="O1" date="1/20/1996">
            <OrderDetail id="OD1" pid="P1"/>
            <OrderDetail id="OD2" pid="P2"/>
      
    • Określa ostatni wiersz, 2 jako Tag numer i 1 jako nadrzędnego ze znacznikiem numeru.Dlatego innego <Order> element podrzędność zostanie dodany do <Customer> elementu nadrzędnego.

      <Customer cid="C1" name="Janine">
         <Order id="O1" date="1/20/1996">
            <OrderDetail id="OD1" pid="P1"/>
            <OrderDetail id="OD2" pid="P2"/>
         </Order>
         <Order id="O2" date="3/29/1997">
      </Customer>
      

Do podsumowania wartości w Tag i nadrzędnego kolumna meta informacje podane kolumna nazw i poprawna kolejność wierszy produkcji XML ma JAWNY w trybie.

Uniwersalny zamawiania wiersza tabeli

Przy konstruowaniu XML, wiersze w tabela uniwersalnych są przetwarzane w kolejności.Dlatego pobrać poprawne dzieci wystąpień skojarzonych z ich nadrzędnego zestaw wierszy w zestawie zestaw wierszy musi zostać zamówiona tak, aby każdy węzeł nadrzędny następuje natychmiast podrzędnych.

Określanie nazw kolumn w tabeli uniwersalny

Podczas pisania kwerend JAWNE trybu kolumna nazwy w wynikowym zestawie zestaw wierszy musi być określona przy użyciu tego formatu.Zapewniają informacje transformacja, w tym nazwy elementów i atrybut i innych dodatkowych informacji, określonych za pomocą dyrektyw.

Jest to format ogólny:

ElementName!TagNumber!AttributeName!Directive

Poniżej znajduje się opis części format.

  • ElementName
    Jest Wynikowy ogólny identyfikator elementu.Na przykład jeśli Klienci jest określony jako ElementName, <klienci> element jest generowany.

  • TagNumber
    Unikatową wartość znacznika jest przypisana do elementu.Ta wartość przy pomocy dwóch kolumn metadane Tag i nadrzędnego, określa zagnieżdżenia elementów w wynikowym pliku XML.

  • Nazwa_atrybutu
    Zawiera nazwę atrybut do skonstruowania określonego ElementName.Jeśli jest to zachowanie dyrektywy nie jest określony.

    Jeśli dyrektywy określono i jest xml, cdata, lub elementu, ta wartość jest używana do konstruowania element podrzędność ElementName, a wartość kolumna zostaną dodane do niego.

    Jeśli określisz dyrektywy, Nazwa_atrybutu może być pusta.Na przykład ElementName!TagNumber!!Dyrektywa.W tym przypadek wartość kolumna bezpośrednio jest zawarty w ElementName.

  • Dyrektywy
    Dyrektywy jest opcjonalny i użyć go, aby podać dodatkowe informacje dotyczące budowy XML.Dyrektywy ma dwa cele.

    Jednym z celów jest kodowanie wartości jak identyfikator, IDREF i IDREFS.Można określić Identyfikatora, IDREF, i IDREFS słowa kluczowe, jak dyrektyw.Dyrektywy te zastępują typy atrybut.Umożliwia tworzenie łączy wewnątrz dokumentu.

    Ponadto, można użyć dyrektywy do wskazania sposobu mapowania danych ciąg XML.Ukryj, element, elementxsinil, xml, xmltext, i cdata słowa kluczowe mogą być używane jako dyrektywy.Ukryj dyrektywy ukrywa węzeł.Jest to przydatne, gdy pobierać wartości tylko dla celów sortowania, ale nie chcesz je w wynikowym pliku XML.

    Elementu dyrektywy generuje zamkniętego elementu zamiast atrybut.Dane zawarte są kodowane jako obiekt.Na przykład < znak staje się &lt;.Dla wartości NULL kolumna żaden element nie jest generowane.Jeśli chcesz, aby element generowane dla wartości null kolumna wartości, można określić elementxsinil dyrektywy.Spowoduje to wygenerowanie elementu xsi: nil atrybut = TRUE.

    Xml dyrektywy jest taka sama jak elementu dyrektywy, z wyjątkiem nie obiekt występuje kodowania.Należy zauważyć, że elementu dyrektywy mogą być łączone z identyfikator, IDREF, lub IDREFS, podczas gdy xml dyrektywy nie jest dozwolone inne dyrektywy, z wyjątkiem Ukryj.

    Cdata dyrektywa zawiera dane zawijania go z sekcji CDATA.Zawartość nie jest zakodowany obiekt.Typ danych źródłowych musi być typu tekst taki jak varchar, nvarchar, tekstu, lub ntext.Niniejsza dyrektywa może być używany tylko z Ukryj.Gdy używana jest niniejszej dyrektywy, Nazwa_atrybutu nie może być określony.

    Łączenie dyrektyw między tych dwóch grup jest dozwolone w większości przypadków, ale łącząc je między sobą jest niedozwolone.

    Jeśli dyrektywy i Nazwa_atrybutu nie jest określony, na przykład klienta! 1, elementu dyrektywy jest wprost, takich jak klienta! 1!!element, a kolumna danych zawartych w ElementName.

    Jeśli xmltext określonych dyrektywą, zawartość kolumna jest otoczona pojedynczy znacznik, który jest zintegrowany z pozostałej części dokumentu.Niniejsza dyrektywa jest przydatne podczas pobierania przepełnienia, unconsumed, przechowywane kolumna OPENXML danych XML.Aby uzyskać więcej informacji, zobacz Badanie XML przy użyciu OPENXML.

    Jeśli Nazwa_atrybutu jest określona nazwa tagu zastępuje określonej nazwie.W przeciwnym wypadku atrybut jest dołączany do bieżącej listy atrybutów elementów otaczający umieszczając zawartość na początku zamknięcia bez obiekt kodowania.Kolumna z niniejszą dyrektywą musi być typu tekst, takich jak varchar, nvarchar, char, nchar, tekstu, lub ntext.Niniejsza dyrektywa może być używany tylko z Ukryj.Niniejsza dyrektywa jest przydatna w pobieranie przepełnienie danych przechowywanych kolumna.Jeśli zawartość nie jest poprawnie sformułowany kod XML, zachowanie jest niezdefiniowane.