Aracılığıyla paylaş


AÇIK modu kullanılarak

Konu altında açıklandığı gibi Oluşturarak xml Using for xml, ham ve otomatik modu kadar sorgu sonuçlarından oluşturulan xml şekli üzerinde denetim sağlar.Ancak, açık modu istediğiniz xml sorgu sonuçlarından oluştururken, en fazla esnekliği sağlar.

Gerekli xml, XML beklenen iç içe geçme gibi ek bilgiler sorgu bir parçası olarak belirtilip böylece açık modu sorgusu belirli bir şekilde yazılmış olması gerekir.İstediğiniz xml bağlı yazma açık modu sorguları hantal olabilir.Size gelebilir Yolu modu kullanarak ile iç içe açık modu sorguları yazmak bir daha basit alternatifidir.

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

AÇIK modda işlemeyi satır kümesi

AÇIK mod satır kümesi dönüşümleri, sonuçlar gelen bir xml belgesine sorgu yürütme.Bir xml belge oluşturmak açık modu için 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ığı, istediğiniz xml i üretebilir belirli bir biçimi ile.

İlk olarak, aşağıdaki iki meta veriler sütunları sorgunun üretmelidir:

  • İlk sütun etiketi sayı tamsayı türü, geçerli öğenin sağlamanız gerekir ve sütun adı olmalıdır Etiket.Sorgunuzu, satır kümesi kümesi kümesine fiziksel olarak her öğe için bir benzersiz etiket numarasını sağlamanız gerekir.

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

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

Sorgu tarafından oluşturulan Evrensel tablo xml sonucunu üretmeden 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ütunlar.Bu değerler hiyerarşiyi belirler.

  • Sütun adları belli bir biçimde, bu konuda ileride açıklandığı şekilde belirtilir.

  • Bu Evrensel değerinden xml oluşturma, tablo, bu verileri tablo sütun gruplar halinde dikey olarak bölümlenmiş.Gruplandırma göre belirlenen Etiket değeri ve sütun adları.xml oluşturma, işleme mantığının sütun her satır için bir grup seçer ve bir öğe oluşturur.Bu örnekte uygulanır:

    • İçin Etiket ilk satırda, sütun adları aynı etiket numarası dahil sütun değeri 1 Müşteri! 1! CID ve **Müşteri! 1! adı, bir grup oluştururlar.**Bu sütunların satır işlenirken kullanılır ve üretilen öğesinin şekli olduğunu farketmişsinizdir <Customer id=... name=...>.Sütun adı biçimi bu konunun ilerisinde açıklanmıştır.

    • Sahip satırlar için Etiket sütunları, sütun değeri 2 Order! 2! kimliği ve Order! 2! tarih sonra öğeleri oluştururken kullanılan bir grup formu <Order id=... date=... />.

    • Sahip satırlar için Etiket sütunları, sütun değeri 3 OrderDetail! 3! kimliği! kimliği ve OrderDetail! 3! PID! IDREF bir grup oluştururlar.Bu satırların her biri bir öğe oluşturur <OrderDetail id=... pid=...>, bu sütunların.

  • Not xml hiyerarşisi oluşturmak, satırlar sırayla işlenir.Aşağıdaki gösterildiği gibi xml hiyerarşisi belirlenir:

    • İlk satırı belirtir Etiket değeri 1 ve ana null değeri.Bu nedenle, karşılık gelen öğe <Customer> öğesi, bir üst düzey öğesi olarak eklenirxml.

      <Customer cid="C1" name="Janine">
      
    • İkinci satırdaki tanımlar Etiket 2 değeri ve ana değeri 1.Bu nedenle, öğe <Order> öğesinin bir alt öğesi eklenen <Customer> öğesi.

      <Customer cid="C1" name="Janine">
         <Order id="O1" date="1/20/1996">
      
    • Sonraki iki satır tanımlamak Etiket değeri 3 ve ana değer 2.Bu nedenle, iki öğe <OrderDetail> öğeleri alanının alt öğesi olarak eklenen <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 numarası ve 1 olarak ana etiket numarası.Bu nedenle, başka bir <Order> alt öğesi eklenir <Customer> üst öğesi.

      <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 için değerleri Etiket ve ana meta sütun bilgileri sağlanan sütun adlarının ve doğru sipariş satırları açık modunu kullandığınızda, istediğiniz xml üretmek.

Evrensel tablo satırı sıralama

xml, Evrensel satırları oluşturmak yoluyla, tablo sırayla işlenir.Böylece her üst düğümün alt tarafından hemen sonrasında bu nedenle doğru çocuklar almak için kendi üst satır kümesi içinde satırları ile ilişkili örnekler sıralanmalıdır.

Evrensel bir tablodaki sütun adlarını belirtme

AÇIK modu sorguları yazarken, bu biçimi kullanarak elde edilen satır kümesi sütun adı belirtilmelidir.Öğe ve öznitelik adları ve yönergeleri kullanarak belirtilen diğer ek bilgiler de dahil olmak üzere dönüştürme bilgilerini sağlarlar.

Bu genel biçim yer almaktadır:

ElementName!TagNumber!AttributeName!Directive

Biçim bölümlerini açıklaması aşağıda verilmektedir.

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

  • TagNumber
    Bir öğe için benzersiz bir etiket değeri atanır.İki meta veriler sütunları yardımıyla bu değeri Etiket ve ana, iç içe geçmiş sonuç XML öğeleri belirler.

  • ÖznitelikAdı
    Belirtilen oluşturmak için öznitelik adını verir ElementName.Bu davranış olur yönergesi belirtilmemiş.

    If Directive is specified and it is xml, cdata, or element, this value is used to construct an element child of ElementName, and the column value is added to it.

    Belirtirseniz, yönergesi, ÖznitelikAdı boş olabilir.Örneğin, ElementName!TagNumber!!Yönergesi.Bu durum, 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ından biri, değerleri ID, IDREF ve IDREFS şifrelemektir.Belirtebileceğiniz ID, IDREF, ve IDREFS anahtar sözcükler olarak yönergeleri.Bu yönergeleri öznitelik türleri üzerine.Bu belge içi bağlantılar oluşturmanıza olanak sağlar.

    Ayrıca, kullanabileceğiniz yönergesi nasıl dize verileri xml eşleme belirtmek için.The hide, element, elementxsinil, xml, xmltext, and cdata keywords can be used as the Directive.The hide directive hides the node.Bu sıralama amaçları için deerleri, ancak bunları ortaya çıkan xml içinde istemiyorsanız kullanışlıdır.

    The element directive generates a contained element instead of an attribute.İç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.Belirtebileceğiniz bir öğe null sütun değerleri için üretilen isterseniz, elementxsinil yönergesi.Bu öznitelik xsi: nil sahip bir öğe oluşturur = true.

    The xml directive is the same as an element directive, except that no entity encoding occurs.Dikkat edin öğesi yönergesi ile birleştirilebilir ID, IDREF, veya IDREFS, oysa xml yönergesi verilmiyor diğer Direktif ile dışında gizleme.

    The cdata directive contains the data by wrapping it with a CDATA section.İçerik kodlanmış bir 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ı belirtilmesi gerekir.

    Çoğu durumda bu iki grubun arasında yönergeleri birleştirme izin verilir, ancak kendileri arasında birleştirme izin verilir.

    If the Directive and the AttributeName is not specified, for example, Customer!1, an element directive is implied, such as Customer!1!!element, and column data is contained in the ElementName.

    If the xmltext directive is specified, the column content is wrapped in a single tag that is integrated with the rest of the document.Bu yönerge, taşma, unconsumed getiriliyor içinde yararlıdır, depolanan xml verileri bir sütun openxml tarafından.Daha fazla bilgi için bkz: openxml kullanarak xml sorgulama.

    If AttributeName is specified, the tag name is replaced by the specified name.Aksi takdirde öznitelik varlık kodlama olmadan içeriği içerik başında yerleştirerek kapsayan öðelerin özniteliklerine de geçerli listeye 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, taşma veri depolanan getirmeye de yararlıdır bir sütun.İçeriği doğru biçimlendirilmiş bir xml ise, davranışı tanımsızdır.