Aracılığıyla paylaş


Kullanımı ile for xml Açık modu

Konu altında açıklandığı gibi for xml kullanma oluşturmak yoluyla, raw ve auto modu sorgusu sonucu oluşturulan xml şekli üzerinde fazla denetime vermeyin. Ancak, Açık modu istediğiniz xml sorgu sonucu üreten birçok esneklik sağlar.

Böylece gerekli xml, xml, beklenen iç içe geçme gibi ek bilgiler açıkça sorgu bir parçası olarak belirtilen Açık modu sorgusu belirli bir şekilde yazılmalıdır. Talep xml bağlı yazma Açık modu sorguları hantal olabilir. Sen-ebilmek bulmak o kullanarak yolu mod ile iç içe Açık modu sorguları yazma basit bir alternatifidir.

AÇIK modunda sorgu bir parçası olarak istediğiniz xml açıklamak için oluşturulan xml iyi biçimlendirilmiş ve geçerli olduğundan emin olmalısınız.

Açık modda işlemeyi satır kümesi

Bir xml belgesine sorgu yürütme sonuçları satır kümesi Açık modu dönüştürüyor. xml belgesi üretmek Açık modu, satır kümesi belirli bir biçimde olması gerekir. Bu satır kümesi üretmek için seçme sorgusu yazma gerektirir Evrensel tablo, böylece işleme mantığı ardından istediğiniz xml üretebilir belirli bir biçime sahip.

İlk olarak, sorgu aşağıdaki iki meta veri sütunları üretmek gerekir:

  • İlk sütunda etiket numarası, tamsayı türü, geçerli öğe sağlamanız gerekir ve sütun adı olmalıdır Etiket. Sorgu satır kümesi inşa edilecek her bir öğesi için bir benzersiz etiket numarasını sağlamanız gerekir.

  • İkinci sütun üst öğe bir etiket numarasını sağlamanız gerekir ve bu sütun adı olmalıdır ana. Bu şekilde, etiket ve üst sütun hiyerarşi bilgi sağlar.

Bu meta verileri sütun değerleri, sütun adları, bilgi ile birlikte, istediğiniz xml üretmek için kullanılır. Not sorgu sütun adları belirli bir şekilde girmelisiniz. Ayrıca 0 veya null ana sütun karşılık gelen öğe üstü olduğunu gösterir. Öğesi xml bir üst düzey öğesi olarak eklenir.

Bir sorgu tarafından oluşturulan evrensel tablo xml sonuç üreten içine nasıl işleneceğini anlamak için bu evrensel tablo üretir sorgu yazmış olduğunuz varsayılmaktadır:

Örnek evrensel tablo

Bu evrensel tablo hakkında aşağıdakilere dikkat edin:

  • İlk iki sütun Etiket ve ana ve meta sütun vardır. Bu değerler hiyerarşiyi belirler.

  • Sütun adları, bu konuda ileride açıklandığı gibi belirli bir şekilde belirtilir.

  • Bu evrensel tablo xml oluşturmak, bu tablodaki verileri dikey sütun gruplar halinde bölümlendirilir. Gruplandırma göre belirlenir Etiket değeri ve sütun adları. xml oluştururken, işleme mantığı sütun her satır için bir grup seçer ve bir öğe oluşturur. Örneğin aşağıdakiler geçerlidir:

    • İçin Etiket ilk satırında, sütun adları dahil aynı etiket numarası, 1 sütun değeri Müşteri! 1! cid ve Müşteri! 1! adı, bir grup. Bu sütunların satır işlenirken kullanılır ve oluşturulan elemanın şekli olduğunu fark olabilir <Customer id=... name=...>. Sütun adı biçiminde bu konunun ilerisinde açıklanmıştır.

    • Satır ile Etiket sütun değeri 2, sütun düzeni! 2! kimliği ve düzeni! 2! tarihi sonra öğeleri oluştururken kullanılan bir grup <Order id=... date=... />.

    • Satır ile Etiket sütun değeri 3, sütun OrderDetail! 3! kimliği! kimliği ve OrderDetail! 3! PID! IDREF bir grup oluştururlar. Bu satırların tümünde bir öğe oluşturur <OrderDetail id=... pid=...>, bu sütun.

  • Not xml hiyerarşisi oluşturmak, satırları sipariş işleme alınır. xml hiyerarşisi aşağıdaki gösterildiği gibi belirlenir:

    • İlk satırı belirtir Etiket değer 1 ve ana null değeri. Bu nedenle, ilgili öğenin <Customer> üst düzey öğe XML öğesi eklenir.

      <Customer cid="C1" name="Janine">
      
    • İkinci sırayı tanımlayan Etiket değer 2 ve ana değer 1. Bu nedenle, öğe, <Order> öğesinin alt öğesi olarak eklenir <Customer> öğesi.

      <Customer cid="C1" name="Janine">
         <Order id="O1" date="1/20/1996">
      
    • Sonraki iki satır tanımlamak Etiket değer 3 ve ana değer 2. Bu nedenle, iki unsur, <OrderDetail> öğeleri, alt öğesi olarak eklenir <Order> öğesi.

      <Customer cid="C1" name="Janine">
         <Order id="O1" date="1/20/1996">
            <OrderDetail id="OD1" pid="P1"/>
            <OrderDetail id="OD2" pid="P2"/>
      
    • Son satır 2 olarak tanımlayan Etiket sayı ve 1 olarak ana etiket numarası. Bu nedenle, başka bir <Order> öğe alt eklenir <Customer> üst öğe.

      <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>
      

Özetlemek gerekirse, değerleri Etiket ve ana meta sütun bilgileri sağlanan sütun adlarının ve doğru sipariş satırları üretmek xml Açık modu kullandığınızda istediğiniz.

Evrensel tablo satırı sıralama

xml oluştururken, evrensel tablodaki satırlar sırayla işlenir. Böylece her üst düğümün alt tarafından hemen ardından bu nedenle doğru çocuk almak için üst, satır satır kümesi ile ilişkili örnek sipariş verilmesi gereken.

Evrensel tablodaki sütun adları belirtme

Açık modu sorguları yazarken, bu biçimi kullanarak sonuç satır kümesi sütun adları belirtilmelidir. Öğe ve öznitelik adları ve yönergeleri kullanarak belirtilen diğer ek bilgi dönüşüm bilgileri sağlarlar.

Bu genel biçim yer almaktadır:

ElementName!TagNumber!AttributeName!Directive

Aşağıdaki biçimi parçalarını açıklamasıdır.

  • ElementName
    Ortaya çıkan genel öğe tanımlayıcısıdır. Örneğin, eğer müşterilerin olarak belirtilen ElementName, <müşterilerin> öğesi oluşturulur.

  • TagNumber
    Benzersiz değer bir elemana atanır. Bu değer, iki meta veri sütunları yardımıyla Etiket ve ana, yerleştirme sonuç XML öğeleri belirler.

  • ÖznitelikAdı
    Belirtilen oluşturmak için öznitelik adını sağlar ElementName. Eğer davranış budur yönergesi belirtildi.

    Eğer yönergesi belirtilen ve xml, cdata, veya öğesi, bir öğe alt oluşturmak için bu değer kullanılır ElementName, ve sütun değeri için eklenir.

    If you specify yönergesi, ÖznitelikAdı boş olabilir. Örneğin, ElementName!TagNumber!!Yönergesi. Bu durumda, sütun değeri doğrudan tarafından bulunan ElementName.

  • Yönergesi
    Yönergesi isteğe bağlıdır ve XML yapımı için ek bilgi sağlamak için kullanabilirsiniz. Yönergesi iki amacı vardır.

    Amaçları ID, IDREF ve IDREFS değerleri kodlamak için biridir. Belirleyebileceğiniz ID, IDREF, ve IDREFS anahtar kelimeler olarak direktifleri. Bu yönergeler, öznitelik türleri üzerine. Böylece, Intra-belge bağlantıları oluşturun.

    Ayrıca, sen-ebilmek kullanma yönergesi string veri xml eşleme gösterir. Gizleme, öğesi, ELEMENTXSINIL, xml, xmltext, ve cdata anahtar kelimeler olarak kullanılabilir yönergesi. Gizleme yönergesi düğüm gizler. Bu, yalnızca sıralama amaçları için deerleri, ancak bunları sonuç xml istemiyorsanız kullanışlıdır.

    Öğesi yönergesi oluşturur bir içerilen öğe özniteliği yerine. İçerilen verileri bir varlık olarak kodlanır. Örneğin, **<**karakter olur &lt;. BOŞ sütun değerleri için hiçbir öğe oluşturulur. Belirleyebileceğiniz bir öğe null sütun değerleri için oluşturulan isterseniz, ELEMENTXSINIL yönergesi. Bu-ecek oluşturmak xsi: nil özniteliği olan bir eleman = true.

    Xml yönergesinin aynı bir öğesi yönergesi, dışında hiçbir varlık kodlama oluşur. Dikkat öğesi yönergesi ile kombine edilebilir ID, IDREF, veya IDREFS, oysa xml yönergesi verilmez başka bir yönergesi ile dışında gizleme.

    Cdata yönergesi ile bir cdata bölümü sarma tarafından verilerini içerir. İçerik kodlanmış varlık değildir. Özgün veri türü metin türü gibi olmalıdır varchar, nvarchar, metin, veya ntext. Bu yönerge sadece kullanılabilir gizleme. Bu yönerge kullanıldığında, ÖznitelikAdı değildir belirtilmelidir.

    Yönergelerinin bu iki grubun arasındaki birleştiren çoğu durumda izin verilir, ancak bunları birleştirerek kendi aralarında izin verilmez.

    Eğer yönergesi ve ÖznitelikAdı , örneğin belirtilmemiş Müşteri! 1, bir öğesi yönergesi ima, gibi Müşteri! 1!eleman, ve sütun veri içinde yer alan ElementName.

    Eğer xmltext yönergesi belirtilmişse, belgenin geri kalanı ile tümleşik olan tek bir etiketteki sütun içeriği sarılır. Bu yönerge, unconsumed, taşma, openxml tarafından bir sütunda depolanan xml verileri alma yararlıdır. Daha fazla bilgi için, bkz. openxml (SQL Server).

    Eğer ÖznitelikAdı belirtilirse, etiket adı tarafından belirtilen adı değiştirilir. Aksi takdirde öznitelik varlık kodlama olmadan içerik içerme başında koyarak kapsayan öğelerinin özniteliklerini geçerli listesine eklenir. Bu yönerge ile sütun gibi bir metin türü olmalıdır varchar, nvarchar, char, nchar, metin, veya ntext. Bu yönerge sadece kullanılabilir gizleme. Bu yönerge, bir sütunda depolanan taşma veri getiriliyor yararlıdır. Doğru biçimlendirilmiş bir xml içeriği değil, davranışı tanımsızdır.

Bu Bölümde

Aşağıdaki örnekler, Açık modu kullanımını göstermektedir.

Ayrıca bkz.

Başvuru

for xml ile ham modunu kullanın

for xml ile ham modunu kullanın

select (Transact-sql)

xml (SQL Server)

Kavramlar

for xml ile ham modunu kullanın