Panduan: Mengikat kontrol konten ke bagian XML kustom
Panduan ini menunjukkan cara mengikat kontrol konten dalam kustomisasi tingkat dokumen untuk data Word ke XML yang disimpan dalam dokumen.
Berlaku untuk: Informasi dalam topik ini berlaku untuk proyek tingkat dokumen untuk Word. Untuk informasi selengkapnya, lihat Fitur yang tersedia berdasarkan aplikasi Office likasi dan jenis proyek.
Word memungkinkan Anda menyimpan data XML, bernama bagian XML kustom, dalam dokumen. Anda dapat mengontrol tampilan data ini dengan mengikat kontrol konten ke elemen di bagian XML kustom. Contoh dokumen dalam panduan ini menampilkan informasi karyawan yang disimpan dalam bagian XML kustom. Saat Anda membuka dokumen, kontrol konten menampilkan nilai elemen XML. Setiap perubahan yang Anda buat pada teks dalam kontrol konten disimpan di bagian XML kustom.
Panduan ini mengilustrasikan tugas-tugas berikut:
Menambahkan kontrol konten ke dokumen Word dalam proyek tingkat dokumen pada waktu desain.
Membuat file data XML dan skema XML yang menentukan elemen untuk diikat ke kontrol konten.
Melampirkan skema XML ke dokumen pada waktu desain.
Menambahkan konten file XML ke bagian XML kustom dalam dokumen pada waktu proses.
Mengikat kontrol konten ke elemen di bagian XML kustom.
Mengikat ke DropDownListContentControl sekumpulan nilai yang ditentukan dalam skema XML.
Catatan
Komputer Anda mungkin memperlihatkan nama atau lokasi yang berbeda untuk beberapa elemen antarmuka pengguna Visual Studio dalam petunjuk berikut. Edisi Visual Studio yang Anda miliki dan setelan yang Anda gunakan menentukan elemen-elemen ini. Untuk informasi selengkapnya, lihat Mempersonalisasi IDE.
Prasyarat
Anda memerlukan komponen berikut untuk menyelesaikan panduan ini:
Edisi Visual Studio yang menyertakan alat pengembang Microsoft Office. Untuk informasi selengkapnya, lihat Mengonfigurasi komputer untuk mengembangkan solusi Office.
Microsoft Word.
Membuat proyek dokumen Word baru
Buat dokumen Word yang akan Anda gunakan dalam panduan.
Untuk membuat proyek dokumen Word baru
Buat proyek dokumen Word dengan nama EmployeeControls. Buat dokumen baru untuk solusi tersebut. Untuk informasi selengkapnya, lihat Cara: Membuat proyek Office di Visual Studio.
Visual Studio membuka dokumen Word baru di perancang dan menambahkan proyek EmployeeControls ke Penjelajah Solusi.
Menambahkan kontrol konten ke dokumen
Buat tabel yang berisi tiga jenis kontrol konten yang berbeda tempat pengguna dapat melihat atau mengedit informasi tentang karyawan.
Untuk menambahkan kontrol konten ke dokumen
Di dokumen Word yang dihosting di perancang Visual Studio, pada Pita, pilih tab Sisipkan .
Dalam grup Tabel, pilih Tabel, dan sisipkan tabel dengan 2 kolom dan 3 baris.
Ketik teks di kolom pertama sehingga menyerupan kolom berikut:
Nama Karyawan Tanggal Sewa Judul Di kolom kedua tabel, pilih baris pertama (di samping Nama Karyawan).
Pada Pita, pilih tab Pengembang .
Catatan
Jika tab Pengembang tidak terlihat, Anda harus terlebih dahulu memperlihatkannya. Untuk informasi selengkapnya, lihat Cara: Memperlihatkan tab pengembang pada pita.
Di grup Kontrol, pilih tombol Teks untuk menambahkan PlainTextContentControl ke sel pertama.
Di kolom kedua tabel, pilih baris kedua (di samping Tanggal Persewaan).
Di grup Kontrol, pilih tombol Pemilih Tanggal untuk menambahkan DatePickerContentControl ke sel kedua.
Di kolom kedua tabel, pilih baris ketiga (di samping Judul).
Di grup Kontrol, pilih tombol Daftar Drop-Down untuk menambahkan DropDownListContentControl ke sel terakhir.
Itu adalah seluruh antarmuka pengguna untuk proyek ini. Jika Anda menjalankan proyek sekarang, Anda dapat mengetik teks di baris pertama dan memilih tanggal di baris kedua. Langkah selanjutnya adalah melampirkan data yang ingin Anda tampilkan ke dokumen dalam file XML.
Membuat file data XML
Biasanya, Anda akan mendapatkan data XML untuk disimpan di bagian XML kustom dari sumber eksternal, seperti file atau database. Dalam panduan ini, Anda membuat file XML yang berisi data karyawan, ditandai dengan elemen yang akan Anda ikat ke kontrol konten dalam dokumen. Untuk membuat data tersedia pada waktu proses, sematkan file XML sebagai sumber daya dalam rakitan kustomisasi.
Untuk membuat file data
Pada menu Proyek, klik Tambahkan Item Baru.
Kotak dialog Tambahkan Item Baru akan muncul.
Di panel Templat , pilih File XML.
Beri nama file employees.xml, lalu pilih tombol Tambahkan .
File employees.xml terbuka di Editor Kode.
Ganti konten file employees.xml dengan teks berikut.
<?xml version="1.0" encoding="utf-8" ?> <employees xmlns="http://schemas.microsoft.com/vsto/samples"> <employee> <name>Karina Leal</name> <hireDate>1999-04-01</hireDate> <title>Manager</title> </employee> </employees>
Di Penjelajah Solusi, pilih file employees.xml.
Di jendela Properti , pilih properti Tindakan Build, lalu ubah nilai menjadi Sumber Daya Tersemat.
Langkah ini menyematkan file XML sebagai sumber daya di rakitan saat Anda membangun proyek. Ini memungkinkan Anda mengakses konten file XML pada waktu proses.
Membuat Skema XML
Jika Anda ingin mengikat kontrol konten ke satu elemen dalam bagian XML kustom, Anda tidak perlu menggunakan skema XML. Namun, untuk mengikat DropDownListContentControl ke sekumpulan nilai, Anda harus membuat skema XML yang memvalidasi file data XML yang Anda buat sebelumnya. Skema XML mendefinisikan nilai yang mungkin untuk elemen .title
Anda akan mengikat DropDownListContentControl elemen ini nanti dalam panduan ini.
Untuk membuat skema XML
Pada menu Proyek, klik Tambahkan Item Baru.
Kotak dialog Tambahkan Item Baru akan muncul.
Di panel Templat , pilih Skema XML.
Beri nama skema employees.xsd dan pilih tombol Tambahkan .
Perancang skema terbuka.
Di Penjelajah Solusi, buka menu pintasan untuk employees.xsd, lalu pilih Tampilkan Kode.
Ganti konten file employees.xsd dengan skema berikut.
<?xml version="1.0" encoding="utf-8" ?> <xs:schema xmlns="http://schemas.microsoft.com/vsto/samples" targetNamespace="http://schemas.microsoft.com/vsto/samples" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="employees" type="EmployeesType"></xs:element> <xs:complexType name="EmployeesType"> <xs:all> <xs:element name="employee" type="EmployeeType"/> </xs:all> </xs:complexType> <xs:complexType name="EmployeeType"> <xs:sequence> <xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1"/> <xs:element name="hireDate" type="xs:date" minOccurs="1" maxOccurs="1"/> <xs:element name="title" type="TitleType" minOccurs="1" maxOccurs="1"/> </xs:sequence> </xs:complexType> <xs:simpleType name="TitleType"> <xs:restriction base="xs:string"> <xs:enumeration value ="Engineer"/> <xs:enumeration value ="Designer"/> <xs:enumeration value ="Manager"/> </xs:restriction> </xs:simpleType> </xs:schema>
Pada menu File , klik Simpan Semua untuk menyimpan perubahan Anda ke file employees.xml dan employees.xsd .
Melampirkan skema XML ke dokumen
Anda harus melampirkan skema XML ke dokumen untuk mengikat DropDownListContentControl ke nilai elemen yang title
valid.
Untuk melampirkan skema XML ke dokumen ( Word 2013 )
Aktifkan EmployeeControls.docx di perancang.
Pada Pita, pilih tab Pengembang , lalu pilih tombol Add-In .
Dalam kotak dialog Templat dan Add-in , pilih tab Skema XML, lalu pilih tombol Tambahkan Skema .
Telusuri ke skema employees.xsd yang Anda buat sebelumnya, yang terletak di direktori proyek Anda, lalu pilih tombol Buka .
Pilih tombol OK dalam kotak dialog Skema Pengaturan.
Pilih tombol OK untuk menutup kotak dialog Templat dan Add-in .
Untuk melampirkan skema XML ke dokumen (Word 2010)
Aktifkan EmployeeControls.docx di perancang.
Pada Pita, pilih tab Pengembang .
Di grup XML, pilih tombol Skema.
Dalam kotak dialog Templat dan Add-in , pilih tab Skema XML, lalu pilih tombol Tambahkan Skema .
Telusuri ke skema employees.xsd yang Anda buat sebelumnya, yang terletak di direktori proyek Anda, dan pilih tombol Buka .
Pilih tombol OK dalam kotak dialog Skema Pengaturan.
Pilih tombol OK untuk menutup kotak dialog Templat dan Add-in .
Panel tugas Struktur XML terbuka.
Tutup panel tugas Struktur XML.
Menambahkan bagian XML kustom ke dokumen
Sebelum Anda bisa mengikat kontrol konten ke elemen dalam file XML, Anda harus menambahkan konten file XML ke bagian XML kustom baru dalam dokumen.
Untuk menambahkan bagian XML kustom ke dokumen
Di Penjelajah Solusi, buka menu pintasan untuk ThisDocument.cs atau ThisDocument.vb, lalu pilih Tampilkan Kode.
Tambahkan deklarasi berikut ke
ThisDocument
kelas . Kode ini mendeklarasikan beberapa objek yang akan Anda gunakan untuk menambahkan bagian XML kustom ke dokumen.Tambahkan metode berikut ke kelas
ThisDocument
. Metode ini mendapatkan konten file data XML yang disematkan sebagai sumber daya dalam rakitan, dan mengembalikan konten sebagai string XML.private string GetXmlFromResource() { System.Reflection.Assembly asm = System.Reflection.Assembly.GetExecutingAssembly(); System.IO.Stream stream1 = asm.GetManifestResourceStream( "EmployeeControls.employees.xml"); using (System.IO.StreamReader resourceReader = new System.IO.StreamReader(stream1)) { if (resourceReader != null) { return resourceReader.ReadToEnd(); } } return null; }
Tambahkan metode berikut ke kelas
ThisDocument
. Metode iniAddCustomXmlPart
membuat bagian XML kustom baru yang berisi string XML yang diteruskan ke metode .Untuk memastikan bahwa bagian XML kustom hanya dibuat sekali, metode membuat bagian XML kustom hanya jika bagian XML kustom dengan GUID yang cocok belum ada dalam dokumen. Pertama kali metode ini dipanggil, metode ini menyimpan nilai Id properti ke
employeeXMLPartID
string. NilaiemployeeXMLPartID
string dipertahankan dalam dokumen karena dinyatakan dengan menggunakan CachedAttribute atribut .private void AddCustomXmlPart(string xmlData) { if (xmlData != null) { employeeXMLPart = this.CustomXMLParts.SelectByID(employeeXMLPartID); if (employeeXMLPart == null) { employeeXMLPart = this.CustomXMLParts.Add(xmlData); employeeXMLPart.NamespaceManager.AddNamespace("ns", @"http://schemas.microsoft.com/vsto/samples"); employeeXMLPartID = employeeXMLPart.Id; } } }
Mengikat kontrol konten ke elemen di bagian XML kustom
Ikat setiap kontrol konten ke elemen di bagian XML kustom dengan menggunakan properti XMLMapping dari setiap kontrol konten.
Untuk mengikat kontrol konten ke elemen di bagian XML kustom
Tambahkan metode berikut ke kelas
ThisDocument
. Metode ini mengikat setiap kontrol konten ke elemen di bagian XML kustom dan mengatur format tampilan tanggal dari DatePickerContentControl.private void BindControlsToCustomXmlPart() { string xPathName = "ns:employees/ns:employee/ns:name"; this.plainTextContentControl1.XMLMapping.SetMapping(xPathName, prefix, employeeXMLPart); string xPathDate = "ns:employees/ns:employee/ns:hireDate"; this.datePickerContentControl1.DateDisplayFormat = "MMMM d, yyyy"; this.datePickerContentControl1.XMLMapping.SetMapping(xPathDate, prefix, employeeXMLPart); string xPathTitle = "ns:employees/ns:employee/ns:title"; this.dropDownListContentControl1.XMLMapping.SetMapping(xPathTitle, prefix, employeeXMLPart); }
Jalankan kode Anda saat dokumen dibuka
Buat bagian XML kustom dan ikat kontrol kustom ke data saat dokumen dibuka.
Untuk menjalankan kode Anda saat dokumen dibuka
Tambahkan kode berikut ke
ThisDocument_Startup
metodeThisDocument
kelas . Kode ini mendapatkan string XML dari file employees.xml , menambahkan string XML ke bagian XML kustom baru dalam dokumen, dan mengikat kontrol konten ke elemen di bagian XML kustom.
Menguji proyek
Saat Anda membuka dokumen, kontrol konten menampilkan data dari elemen di bagian XML kustom. Anda dapat mengklik DropDownListContentControl untuk memilih salah satu dari tiga nilai yang valid untuk title
elemen , yang ditentukan dalam file employees.xsd . Jika Anda mengedit data di salah satu kontrol konten, nilai baru disimpan di bagian XML kustom dalam dokumen.
Untuk menguji kontrol konten
Tekan F5 untuk menjalankan proyek.
Verifikasi bahwa tabel dalam dokumen menyerup tabel berikut ini. Setiap string di kolom kedua diperoleh dari elemen di bagian XML kustom dalam dokumen.
Kolom Value Nama Karyawan Karina Leal Tanggal Sewa 1 April 1999 Judul Manajer Pilih sel di sebelah kanan sel Nama Karyawan dan ketikkan nama yang berbeda.
Pilih sel di sebelah kanan sel Tanggal Sewa dan pilih tanggal yang berbeda di pemilih tanggal.
Pilih sel di sebelah kanan sel Judul dan pilih item baru dari daftar drop-down.
Simpan dan tutup dokumen.
Di File Explorer, buka folder \bin\Debug di bawah lokasi proyek Anda.
Buka menu pintasan untuk EmployeeControls.docx lalu pilih Ganti Nama.
Beri nama file EmployeeControls.docx.zip.
Dokumen EmployeeControls.docx disimpan dalam Format Open XML. Dengan mengganti nama dokumen ini dengan ekstensi nama file .zip , Anda dapat memeriksa konten dokumen. Untuk informasi selengkapnya tentang Open XML, lihat artikel teknis Memperkenalkan format file Open XML Office (2007).
Buka file EmployeeControls.docx.zip.
Buka folder customXml.
Buka menu pintasan untuk item2.xml lalu pilih Buka.
File ini berisi bagian XML kustom yang Anda tambahkan ke dokumen.
Verifikasi bahwa
name
elemen ,hireDate
, dantitle
berisi nilai baru yang Anda masukkan ke dalam kontrol konten dalam dokumen.Tutup file item2.xml.
Langkah berikutnya
Anda dapat mempelajari selengkapnya tentang cara menggunakan kontrol konten dari topik ini:
Gunakan semua kontrol konten yang tersedia untuk membuat templat. Untuk informasi selengkapnya, lihat Panduan: Membuat templat dengan menggunakan kontrol konten.
Ubah data di bagian XML kustom saat dokumen ditutup. Saat berikutnya pengguna membuka dokumen, kontrol konten yang terikat ke elemen XML akan menampilkan data baru.
Gunakan kontrol konten untuk melindungi bagian dokumen. Untuk informasi selengkapnya, lihat Cara: Melindungi bagian dokumen dengan menggunakan kontrol konten.
Konten terkait
- Mengotomatiskan Word dengan menggunakan objek yang diperluas
- Kontrol konten
- Cara: Menambahkan kontrol konten ke dokumen Word
- Cara: Melindungi bagian dokumen dengan menggunakan kontrol konten
- Gambaran umum item host dan kontrol host
- Batasan terprogram item host dan kontrol host
- Menambahkan kontrol ke dokumen Office pada waktu proses