Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Anda dapat menggunakan fungsi xpath untuk menetapkan nilai XPath ke bagian pesan, atau untuk menetapkan nilai ke XPath yang merujuk ke bagian pesan. Untuk informasi selengkapnya tentang menetapkan bagian pada pesan dan pesan, lihat Membuat Pesan.
Nota
Untuk informasi selengkapnya tentang fungsi xpath, lihat dokumentasi pihak ketiga pada Xml Path Language (XPath).
Nota
Penggunaan fungsi xpath tidak terbatas pada penetapan pesan. Anda juga dapat menggunakannya dalam ekspresi apa pun, misalnya:
If ((System.Double) xpath(_RequestMessage.part, "number(//book[last()]/price)") == 75.00 && (System.Boolean) xpath(msgBoolean, "string(//boolean)") == false)...
Nota
Jika Anda ingin menetapkan nilai ke string, gunakan fungsi string() XPath. Contohnya:
myString = xpath(msg, "string(/*/book[1]/title)");
Nota
Mesin tidak sadar skema, sehingga Anda hanya dapat membaca nilai dari atau menulis nilai ke simpul yang ada dalam pesan yang berisi (jalur lengkap harus ada), atau mesin akan memunculkan pengecualian. Ini berlaku bahkan jika Anda memberikan nilai default.
Menetapkan ke XPath dalam bagian pesan
Pertimbangkan skema berikut:
<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns:b="http://schemas.microsoft.com/BizTalk/2003" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="catalog">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" name="book">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string" />
<xs:element name="author">
<xs:complexType>
<xs:sequence>
<xs:element name="FirstName" type="xs:string" />
<xs:element name="LastName" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="price" type="xs:string" />
</xs:sequence>
<xs:attribute name="country" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Anda dapat menggunakan fungsi sebagai berikut untuk mengatur nilai pada instans dokumen dari jenis skema tersebut:
//assumes that a message named _ResponseMessage is already constructed
_ResponseMessage.part = _RequestMessage.part;
xpath(_ResponseMessage.part, "/*/book[1]/@country") = "USA";
xpath(_ResponseMessage.part, "/*/book[1]/title") = "Legends";
xpath(_ResponseMessage.part, "/*/book[1]/author/FirstName") = "A";
xpath(_ResponseMessage.part, "/*/book[1]/author/LastName") = "B";
xpath(_ResponseMessage.part, "/*/book[1]/price") = 50;
Menetapkan ke bagian pesan dari XPath
//assumes that a message named objMessage is already constructed
objMessage.BooleanPart = xpath("false()");
objMessage.IntPart = xpath("100");
objMessage.StringPart = xpath("'Hello'");
objMessage.StringPart2 = xpath("'World'");
Menggunakan XPath untuk menugaskan dari node dan kumpulan simpul
Anda juga dapat menggunakan XPath untuk menetapkan simpul XML dan set simpul ke elemen XML, kelas, atau pesan berbasis skema atau berbasis kelas.
Misalkan Anda memiliki kelas YANG dapat diserialisasi XML yang disebut Buku, dan pertimbangkan contoh berikut:
[Serializable]
Class Book {...}
Contoh Satu — pilih elemen buku keempat dari katalog, dan tetapkan ke variabel elemen XML:
myXmlElement = xpath(myMsg, "/catalog/book[3]");
Contoh Dua — pilih elemen buku keempat dari katalog, dan konversikan menggunakan deserialisasi XML menjadi instans kelas Buku:
myBook = xpath(myMsg, "/catalog/book[3]");
Contoh Tiga — pilih elemen buku keempat dari katalog, dan ubah menjadi pesan dengan jenis Buku.
myBookMsg = xpath(myMsg, "/catalog/book[3]");
Contoh Empat — pilih semua elemen buku dalam katalog, di mana MyMethod mengambil XmlNodeSet sebagai parameter:
MyMethod(xpath(myMsg, "/catalog/book"));
Contoh Lima — tambahkan elemen buku ke kontainer "BookOfTheMonth":
xpath(MyMsg2, "/RecommendedBooks/BookOfTheMonth") = myBook;
Contoh Enam — tambahkan semua buku yang dihargai dua puluh atau kurang ke satu set buku yang direkomendasikan:
xpath(MyMsg2, "/RecommendedBooks/BestPriceBooks") = xpath(MyMsg, "/catalog/book[@price <= 20]");
Contoh Tujuh — panggil kode pengguna yang mengembalikan elemen XML:
xpath(MyMsg2, "/RecommendedBooks/AdvertisedByPartner") = GetPartnerAdvertisedBook();
Sebelum menerapkan contoh lima dan tujuh:
<RecommendedBooks>
<BookOfTheMonth/>
<BestPriceBooks/>
<AdvertisedByPartner/>
</RecommendedBooks>
Setelah menerapkan contoh lima dan tujuh:
<RecommendedBooks>
<BookOfTheMonth>
<Book country="USA">
<title>McSharry</title>
<author>
<FirstName>Nancy</FirstName>
<LastName>Jensen</LastName>
</author>
</Book>
</BookOfTheMonth>
<BestPriceBooks/>
<AdvertisedByPartner>
<Book country="USA">
<title>The Rooster</title>
<author>
<FirstName>Mindy</FirstName>
<LastName>Martin</LastName>
</author>
</Book>
</AdvertisedByPartner>
</RecommendedBooks>