Bagikan melalui


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:

Membuat proyek dokumen Word baru

Buat dokumen Word yang akan Anda gunakan dalam panduan.

Untuk membuat proyek dokumen Word baru

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

  1. Di dokumen Word yang dihosting di perancang Visual Studio, pada Pita, pilih tab Sisipkan .

  2. Dalam grup Tabel, pilih Tabel, dan sisipkan tabel dengan 2 kolom dan 3 baris.

  3. Ketik teks di kolom pertama sehingga menyerupan kolom berikut:

    Nama Karyawan
    Tanggal Sewa
    Judul
  4. Di kolom kedua tabel, pilih baris pertama (di samping Nama Karyawan).

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

  6. Di grup Kontrol, pilih tombol PlainTextContentControl Teks untuk menambahkan PlainTextContentControl ke sel pertama.

  7. Di kolom kedua tabel, pilih baris kedua (di samping Tanggal Persewaan).

  8. Di grup Kontrol, pilih tombol DatePickerContentControl Pemilih Tanggal untuk menambahkan DatePickerContentControl ke sel kedua.

  9. Di kolom kedua tabel, pilih baris ketiga (di samping Judul).

  10. Di grup Kontrol, pilih tombol DropDownListContentControl 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

  1. Pada menu Proyek, klik Tambahkan Item Baru.

    Kotak dialog Tambahkan Item Baru akan muncul.

  2. Di panel Templat , pilih File XML.

  3. Beri nama file employees.xml, lalu pilih tombol Tambahkan .

    File employees.xml terbuka di Editor Kode.

  4. 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>
    
  5. Di Penjelajah Solusi, pilih file employees.xml.

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

  1. Pada menu Proyek, klik Tambahkan Item Baru.

    Kotak dialog Tambahkan Item Baru akan muncul.

  2. Di panel Templat , pilih Skema XML.

  3. Beri nama skema employees.xsd dan pilih tombol Tambahkan .

    Perancang skema terbuka.

  4. Di Penjelajah Solusi, buka menu pintasan untuk employees.xsd, lalu pilih Tampilkan Kode.

  5. 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>
    
  6. 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 )

  1. Aktifkan EmployeeControls.docx di perancang.

  2. Pada Pita, pilih tab Pengembang , lalu pilih tombol Add-In .

  3. Dalam kotak dialog Templat dan Add-in , pilih tab Skema XML, lalu pilih tombol Tambahkan Skema .

  4. Telusuri ke skema employees.xsd yang Anda buat sebelumnya, yang terletak di direktori proyek Anda, lalu pilih tombol Buka .

  5. Pilih tombol OK dalam kotak dialog Skema Pengaturan.

  6. Pilih tombol OK untuk menutup kotak dialog Templat dan Add-in .

Untuk melampirkan skema XML ke dokumen (Word 2010)

  1. Aktifkan EmployeeControls.docx di perancang.

  2. Pada Pita, pilih tab Pengembang .

  3. Di grup XML, pilih tombol Skema.

  4. Dalam kotak dialog Templat dan Add-in , pilih tab Skema XML, lalu pilih tombol Tambahkan Skema .

  5. Telusuri ke skema employees.xsd yang Anda buat sebelumnya, yang terletak di direktori proyek Anda, dan pilih tombol Buka .

  6. Pilih tombol OK dalam kotak dialog Skema Pengaturan.

  7. Pilih tombol OK untuk menutup kotak dialog Templat dan Add-in .

    Panel tugas Struktur XML terbuka.

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

  1. Di Penjelajah Solusi, buka menu pintasan untuk ThisDocument.cs atau ThisDocument.vb, lalu pilih Tampilkan Kode.

  2. Tambahkan deklarasi berikut ke ThisDocument kelas . Kode ini mendeklarasikan beberapa objek yang akan Anda gunakan untuk menambahkan bagian XML kustom ke dokumen.

    [CachedAttribute()]
    public string employeeXMLPartID = string.Empty;
    private Office.CustomXMLPart employeeXMLPart;
    private const string prefix = "xmlns:ns='http://schemas.microsoft.com/vsto/samples'";
    
  3. 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;
    }
    
  4. Tambahkan metode berikut ke kelas ThisDocument. Metode ini AddCustomXmlPart 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. Nilai employeeXMLPartID 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

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

  1. Tambahkan kode berikut ke ThisDocument_Startup metode ThisDocument 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.

    string xmlData = GetXmlFromResource();
    
    if (xmlData != null)
    {
        AddCustomXmlPart(xmlData);
        BindControlsToCustomXmlPart();
    }
    

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

  1. Tekan F5 untuk menjalankan proyek.

  2. 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
  3. Pilih sel di sebelah kanan sel Nama Karyawan dan ketikkan nama yang berbeda.

  4. Pilih sel di sebelah kanan sel Tanggal Sewa dan pilih tanggal yang berbeda di pemilih tanggal.

  5. Pilih sel di sebelah kanan sel Judul dan pilih item baru dari daftar drop-down.

  6. Simpan dan tutup dokumen.

  7. Di File Explorer, buka folder \bin\Debug di bawah lokasi proyek Anda.

  8. Buka menu pintasan untuk EmployeeControls.docx lalu pilih Ganti Nama.

  9. 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).

  10. Buka file EmployeeControls.docx.zip.

  11. Buka folder customXml.

  12. Buka menu pintasan untuk item2.xml lalu pilih Buka.

    File ini berisi bagian XML kustom yang Anda tambahkan ke dokumen.

  13. Verifikasi bahwa nameelemen , hireDate, dan title berisi nilai baru yang Anda masukkan ke dalam kontrol konten dalam dokumen.

  14. Tutup file item2.xml.

Langkah berikutnya

Anda dapat mempelajari selengkapnya tentang cara menggunakan kontrol konten dari topik ini: