Öğesi Path sözdizimi için xml raporu verileri (ssrs)
Rapor Tasarımcısı rapor xml veri kaynağından bir duyarlı öğesi yolu tanımlayarak kullanmak için veri belirtin. Öğe yolu, XML hiyerarşik düğümlerinin ve bunların özniteliklerinin XML veri kaynağına nasıl geçirileceğini belirtir. Varsayılan öğe yolunu kullanmak için, veritabanı sorugusunu veya XML Query için XML ElementPath öğesini boş bırakın. XML veri kaynağından veri alındığında, metin değerlerine ve öğe düğümü özniteliklerine sahip öğe düğümleri sonuç kümesinin sütunları olur. Sorguyu çalıştırdığınızda, düğümlerin ve özniteliklerin değerleri satır verileri haline gelir. Sütunlar, Rapor Verileri bölmesinde veri kümesi alanı koleksiyonu olarak görülür. Bu konu, öğe yolu sözdizimini açıklamaktadır.
[!NOT]
Öğe yolu sözdizimi ad alanından bağımsızdır. Öğe yolunda ad alanları kullanmak için, bir XML ElementPath öğesi içeren XML sorgu sözdizimini kullanın (xml sorgu sözdizimi için xml raporu verileri (ssrs) konusunda açıklanmıştır).
Aşağıdaki tabloda, öğe yolu tanımlamak için kullanılan kurallar açıklanmaktadır.
Kural |
Kullanım amacı |
---|---|
bold |
Tam olarak gösterildiği gibi yazılması gereken metin. |
| (dikey çubuk) |
Sözdizimi öğelerini ayırır. Öğelerden yalnızca birini seçebilirsiniz. |
[ ] (küme parantezleri) |
İsteğe bağlı sözdizimi öğeleri. Küme parantezlerini yazmayın. |
{} (parantez) |
Sözdizimi öğelerinin parametrelerini sınırlar. |
[,...n] |
Önceki öğenin n kez tekrar edilebileceğini belirtir. Tekrarlar virgül ile ayrılır. |
Sözdizimi
Element path ::=
ElementNode[/Element path]
ElementNode ::=
XMLName[(Encoding)][{[FieldList]}]
XMLName ::=
[NamespacePrefix:]XMLLocalName
Encoding ::=
HTMLEncoded | Base64Encoded
FieldList ::=
Field[,FieldList]
Field ::=
Attribute | Value | Element | ElementNode
Attribute ::=
@XMLName[(Type)]
Value ::=
@[(Type)]
Element ::=
XMLName[(Type)]
Type ::=
String | Integer | Boolean | Float | Decimal | Date | XML
NamespacePrefix ::=
Identifier that specifies the namespace.
XMLLocalName :: =
Identifier in the XML tag.
Açıklamalar
Aşağıdaki tabloda öğe yolu deyimleri özetlenmektedir. Tablodaki örnekler, bu konunun Örnekler bölümünde verilen Müşteriler.xml adlı örnek XML belgesine başvurmaktadır.
[!NOT]
XML etiketleri büyük/küçük harfe duyarlıdır. Öğe yolunda bir ElementNode belirttiğinizde, veri kaynağında XML etiketlerini tam olarak eşleştirmelisiniz.
Deyim |
Tanım |
---|---|
Öğe yolu |
XML veri kaynağına sahip bir veri kümesine ilişkin alan verilerini almak için, XML belgesi içinde katedilecek düğümlerin sırasını tanımlar. |
ElementNode |
XML belgesindeki XML düğümü. Düğümler etiketlerle adlandırılır ve diğer düğümlerle hiyerarşik bir ilişki içinde bulunurlar. Örneğin, <Müşteriler> kök öğe düğümüdür. <Müşteri>, <Müşteriler>’in bir alt öğesidir. |
XMLName |
Düğümün adı. Örneğin, Müşteriler düğümünün adı Müşteriler’dir. XMLName, her düğümü benzersiz bir şekilde adlandırmak amacıyla bir ad alanı tanımlayıcısı öneki alabilir. |
Encoding |
Bu öğeye ait Value değerinin kodlanmış XML olduğunu ve kodunun açılıp bu öğenin bir alt öğesi olarak dahil edilmesi gerektiğini belirtir. |
FieldList |
Verileri almak için kullanılacak öğe ve öznitelik kümesini tanımlar. Belirtilmezse, tüm öznitelikler ve alt öğeler alan olarak kullanılır. Boş alan listesi belirtilirse ({}), alan bu düğümde kullanılır. FieldList, hem bir Value hem de bir Element veya ElementNode içeremez. |
Field |
Veri kümesi alanı olarak alınan verileri belirtir. |
Attribute |
ElementNode dahilinde bir ad-değer çifti. Örneğin, <Customer ID="1"> öğe düğümünde ID bir özniteliktir ve @ID(Integer), karşılık gelen ID veri alanında tamsayı türü olarak "1" değerini döndürür. |
Value |
Öğenin değeri. Valueyalnızca son kullanılabilir ElementNodeöğesi yolu Örneğin, <Return> bir yaprak düğümü olduğundan, bunu bir öğe yolunun sonuna eklerseniz Return {@} değeri Chair olur. |
Element |
Adlandırılan alt öğenin değeri. Örneğin, Müşteriler {}/Müşteri {}/Soyadı yalnızca LastName öğesi için değerleri alır. |
Type |
Bu öğeden oluşturulan alan için kullanılacak isteğe bağlı veri türü. |
NamespacePrefix |
NamespacePrefix XML Sorgu öğesinde tanımlanır. Hiçbir XML Sorgu öğesi yoksa, XML ElementPath içindeki ad alanları yoksayılır. Bir XML Sorgu öğesi varsa, XML ElementPath isteğe bağlı bir IgnoreNamespaces özniteliğine sahiptir. IgnoreNamespaces değeri true ise, XML ElementPath ve XML belgesi içindeki ad alanları yoksayılır. Daha fazla bilgi için, bkz. xml sorgu sözdizimi için xml raporu verileri (ssrs). |
Örnek - Ad Alanları Yok
Aşağıdaki örneklerde, xml belgesini Customers.xml kullanın. Bu tablo, sorguda veri kaynağı olarak xml belgesini temel alan bir veri kümesi tanımlayan öğe yolu kullanmanın sonuçları ve öğesi path sözdizimi örnekleri gösterir.
[!NOT]
Sorgu öğesi yolu boş olduğunda, varsayılan öğe yolu kullanır: yaprak düğüm koleksiyonu ilk yolu. İlk örnekte, öğe yolunun boş bırakılması /Müşteriler/Müşteri/Siparişler/Sipariş öğe yolunun belirtilmesiyle eşdeğerdir. Yol içindeki tüm düğüm değer ve öznitelikleri sonuç kümesinde döndürülür ve düğüm adları ve öznitelik adları veri kümesi alanları olarak görünür.
Örnek |
Veri kümesindeki alanlar |
---|---|
Boş |
SiparişMiktarIDAdSoyadMüşteri.Noxmlns
Sandalye61BarışÇetinok11https://www.adventure-works.com
Tablo12BarışÇetinok11https://www.adventure-works.com
Kanepe28ÇiğdemAkın20https://www.adventure-works.com
Sehpa215MeteGöktepe33https://www.adventure-works.com
|
Customers {}/Customer |
AdSoyadID
BarışÇetinok11
ÇiğdemAkın20
MeteGöktepe33
|
Customers {}/Customer {}/LastName |
Soyad
Çetinok
Akın
Göktepe
|
Customers {}/Customer {}/Orders/Order {@,@Qty} |
SiparişMiktar
Sandalye6
Tablo1
Kanepe2
Sehpa2
|
Customers {}/Customer/Orders/Order{ @ID(Integer)} |
Sipariş.NoAdSoyadID
1BarışÇetinok11
2BarışÇetinok11
8ÇiğdemAkın20
15MeteGöktepe33
|
XML belgesi: Müşteriler.xml
Önceki bölümde öğesi yolu örnekleri denemek için size bu xml kopyalayıp rapor Tasarımcısı tarafından erişilebilen bir URL'ye kaydedin ve sonra xml belgesini bir xml veri kaynağı olarak kullanabilirsiniz: Örneğin, https://localhost/Customers.xml.
<?xml version="1.0"?>
<Customers xmlns="https://www.adventure-works.com">
<Customer ID="11">
<FirstName>Bobby</FirstName>
<LastName>Moore</LastName>
<Orders>
<Order ID="1" Qty="6">Chair</Order>
<Order ID="2" Qty="1">Table</Order>
</Orders>
<Returns>
<Return ID="1" Qty="2">Chair</Return>
</Returns>
</Customer>
<Customer ID="20">
<FirstName>Crystal</FirstName>
<LastName>Hu</LastName>
<Orders>
<Order ID="8" Qty="2">Sofa</Order>
</Orders>
<Returns/>
</Customer>
<Customer ID="33">
<FirstName>Wyatt</FirstName>
<LastName>Diaz</LastName>
<Orders>
<Order ID="15" Qty="2">EndTables</Order>
</Orders>
<Returns/>
</Customer>
</Customers>
<?xml version="1.0"?>
<Customers xmlns="https://www.adventure-works.com">
<Customer ID="11">
<FirstName>Bobby</FirstName>
<LastName>Moore</LastName>
<Orders>
<Order ID="1" Qty="6">Chair</Order>
<Order ID="2" Qty="1">Table</Order>
</Orders>
<Returns>
<Return ID="1" Qty="2">Chair</Return>
</Returns>
</Customer>
<Customer ID="20">
<FirstName>Crystal</FirstName>
<LastName>Hu</LastName>
<Orders>
<Order ID="8" Qty="2">Sofa</Order>
</Orders>
<Returns/>
</Customer>
<Customer ID="33">
<FirstName>Wyatt</FirstName>
<LastName>Diaz</LastName>
<Orders>
<Order ID="15" Qty="2">EndTables</Order>
</Orders>
<Returns/>
</Customer>
</Customers>
Alternatif olarak, bağlantı dizesi olmayan bir XML veri kaynağı oluşturabilir ve Müşteri.XML’yi sorguya katıştırırken aşağıdaki yordamı kullanabilirsiniz:
Müşteri.XML’yi sorguya katıştırmak için:
Boş bağlantı dizeli bir XML veri kaynağı oluşturun.
XML veri kaynağı için yeni bir veri kümesi oluşturun.
Veri Kümesi Özellikleri iletişim kutusunda Sorgu Tasarımcısı’nı tıklatın. Metin tabanlı sorgu tasarımcısı iletişim kutusu açılır.
Sorgu bölmesine aşağıdaki iki satırı girin:
<Query>
<XmlData>
Müşteriler.XML’yi kopyalayın ve metni sorgu bölmesinde <XmlData>’dan sonraya yapıştırın.
Sorgu bölmesinde, Müşteriler.XML’den kopyaladığınız ilk satırı silin: <?xml version="1.0"?>
Sorgunun sonuna aşağıdaki iki satırı ekleyin:
<XmlData>
<Query>
Sorguyu Çalıştır’ı tıklatın (!).
Sonuç kümesi, şu sütunları içeren 4 satır verisi görüntüler: xmlns, Customer.ID, FirstName, LastName, ID, Qty, Order.
Tamam’ı tıklatın.
Ayrıca bkz.
Görevler
Rapor Verileri Bölmesinde Alan Ekleme, Düzenleme, Yenileme (Rapor Oluşturucusu ve SSRS)