Sdílet prostřednictvím


Návod: Svázání ovládacích prvků obsahu s vlastními částmi XML

Tento návod ukazuje, jak svázat ovládací prvky obsahu v přizpůsobení úrovni dokumentu aplikace Word data uložená v dokumentu XML.

Platí pro: Informace v tomto tématu se vztahují na projekty na úrovni dokumentu ve Wordu 2013 a ve Wordu 2010. Další informace najdete v tématu Dostupné funkce podle aplikací systému Office a typů projektu.

Aplikace Word umožňuje ukládat data XML s názvem vlastní části XML, v dokumentu.Zobrazení těchto dat můžete řídit pomocí vytvoření vazby ovládacích prvků obsahu na prvky vlastní části XML.Příklad dokumentu v tomto návodu zobrazí informace uložené ve vlastní části XML zaměstnance.Při otevření dokumentu, ovládací prvky obsahu zobrazit hodnoty elementů XML.V části vlastní XML jsou uloženy všechny změny, které provedete v textu v ovládacích prvcích obsahu.

Tento návod ilustruje následující úkoly:

  • Přidání ovládacích prvků obsahu do dokumentu aplikace Word v úrovni dokumentu projekt v době návrhu.

  • Vytvoření datového souboru XML a schématu XML, který definuje prvky svázat ovládací prvky obsahu.

  • Připojení schématu XML k dokumentu v době návrhu.

  • Přidání vlastní části XML v dokumentu obsah souboru XML za běhu.

  • Svázání ovládacích prvků obsahu prvků v části vlastní XML.

  • Vazba DropDownListContentControl sady hodnot, které jsou definovány ve schématu XML.

[!POZNÁMKA]

Na vašem počítači se můžou v následujících pokynech zobrazovat jiné názvy nebo umístění některých prvků uživatelského rozhraní Visual Studia. Tyto prvky jsou určeny edicí sady Visual Studio a použitým nastavením. Další informace najdete v tématu Přizpůsobení nastavení pro vývoj v sadě Visual Studio.

Požadavky

Chcete-li dokončit tento návod, potřebujete následující komponenty:

odkaz na video Pro video verzi tohoto tématu naleznete Video postupy: vazba kontrolu obsahu části XML vlastní.

Vytvoření nového projektu dokument aplikace Word

Vytvořte dokument aplikace Word, který budete používat v tomto návodu.

Chcete-li vytvořit nový projekt dokumentu aplikace Word

Přidání ovládacích prvků obsahu do dokumentu

Vytvořte tabulku, která obsahuje tři různé typy obsahu prvků, kde může uživatel zobrazit nebo upravit informace o zaměstnanci.

Přidání ovládacích prvků obsahu do dokumentu

  1. V dokumentu aplikace Word, jehož hostitelem je aplikace Visual Studio zvolte Návrhář pásu karet Vložit kartu.

  2. V tabulky skupinu, zvolte Tabulkaa vložte tabulku se sloupci 2 a 3 řádky.

  3. Zadejte text v prvním sloupci tak, aby se podobá následující sloupce:

    Jméno zaměstnance

    Datum nástupu

    Title

  4. Ve druhém sloupci tabulky, vyberte první řádek (vedle Jméno zaměstnance).

  5. Na pásu karet, zvolte Developer kartu.

    [!POZNÁMKA]

    Pokud Developer karta není viditelné, je nutné nejprve zobrazit.Další informace naleznete v tématu Postupy: Zobrazení karty Vývojář na pásu karet.

  6. V prvky skupinu, zvolte textu tlačítko PlainTextContentControl přidat PlainTextContentControl na první buňku.

  7. Ve druhém sloupci tabulky, vyberte druhý řádek (vedle Datum přijetí).

  8. V prvky skupinu, zvolte Ovládací prvek Výběr data tlačítko DatePickerContentControl přidat DatePickerContentControl do druhé buňky.

  9. V druhém sloupci tabulky zvolte třetí řádek (vedle hlavy).

  10. V prvky skupinu, zvolte Rozevíracího seznamu tlačítko DropDownListContentControl přidat DropDownListContentControl na poslední buňku.

To je celé uživatelské rozhraní pro tento projekt.Při spuštění projektu, můžete zadat text v prvním řádku a v druhém řádku vyberte datum.Dalším krokem je připojení dat, který chcete zobrazit dokument v souboru XML.

Vytváření datového souboru XML

Obvykle bude získat XML data uložená ve vlastní části XML z externího zdroje, například souboru nebo databázi.V tomto návodu vytvoříte soubor XML obsahující data zaměstnance označeny elementy, které vytvoří vazbu ovládacích prvků obsahu v dokumentu.Pokud chcete zpřístupnit data v době běhu, vložte soubor XML jako prostředek v sestavení vlastního nastavení.

Chcete-li vytvořit datový soubor

  1. V nabídce Projekt klikněte na příkaz Přidat novou položku.

    Zobrazí se dialogové okno Přidat novou položku.

  2. V šablony podokně vyberte XML souboru.

  3. Zadejte název souboru employees.xmla pak zvolte Přidat tlačítko.

    Employees.xml soubor se otevře v editoru kódu.

  4. Nahraďte obsah employees.xml soubor s následujícím textem.

    <?xml version="1.0" encoding="utf-8" ?>
    <employees xmlns="https://schemas.microsoft.com/vsto/samples">
      <employee>
        <name>Karina Leal</name>
        <hireDate>1999-04-01</hireDate>
        <title>Manager</title>
      </employee>
    </employees>
    
  5. V Průzkumník řešení, zvolte employees.xml souboru.

  6. V Vlastnosti vyberte Akce sestavení vlastností a potom změňte hodnotu tak, aby Integrovaný prostředek.

    Tento krok vloží soubor XML jako zdroje v sestavení při sestavení projektu.To umožňuje přístup k obsahu souboru XML za běhu.

Vytvoření schématu XML

Pokud chcete svázat ovládací prvek obsahu jednotlivých elementů v vlastní části XML, není nutné použít schéma XML.Však vytvořit vazbu DropDownListContentControl k sadě hodnot, je nutné vytvořit schéma XML, který ověřuje datový soubor XML, který jste vytvořili dříve.Schéma XML definuje možné hodnoty title prvku.Vytvoří vazbu DropDownListContentControl k tomuto prvku dále v tomto návodu.

Chcete-li vytvořit schéma XML

  1. V nabídce Projekt klikněte na příkaz Přidat novou položku.

    Zobrazí se dialogové okno Přidat novou položku.

  2. V šablony podokně vyberte Schématu XML.

  3. Název schématu employees.xsd a zvolte Přidat tlačítko.

    Otevře se Návrhář schématu.

  4. V Průzkumník řešení, otevřete místní nabídku pro employees.xsda pak zvolte Zobrazit kód.

  5. Nahraďte obsah employees.xsd soubor s následujícím schématem.

    <?xml version="1.0" encoding="utf-8" ?>
    <xs:schema xmlns="https://schemas.microsoft.com/vsto/samples" 
        targetNamespace="https://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. Na souboru nabídky, klepněte na tlačítko Uložit všechny Chcete-li uložit změny employees.xml a employees.xsd soubory.

Připojení schématu XML k dokumentu

Schéma XML je nutné připojit k dokumentu vytvořit vazbu DropDownListContentControl na platné hodnoty title prvek.

Připojení schématu XML k dokumentu (Word 2013)

  1. Aktivovat EmployeeControls.docx v návrháři.

  2. Na pásu karet, zvolte Developer a potom klikněte na příkaz Doplňky tlačítko.

  3. V šablony a doplňky dialogové okno pole, zvolte Schématu XML a potom klikněte na příkaz Přidat schéma tlačítko.

  4. Přejděte employees.xsd schéma vytvořené dříve, je umístěn v adresáři projektu a potom vyberte Otevřít tlačítko.

  5. Zvolte OK tlačítko na Schéma nastavení dialogové okno.

  6. Zvolte OK tlačítka Zavřít šablony a doplňky dialogové okno.

Připojení schématu XML k dokumentu (Word 2010)

  1. Aktivovat EmployeeControls.docx v návrháři.

  2. Na pásu karet, zvolte Developer kartu.

  3. V XML skupinu, zvolte schéma tlačítko.

  4. V šablony a doplňky dialogové okno pole, zvolte Schématu XML a potom klikněte na příkaz Přidat schéma tlačítko.

  5. Přejděte employees.xsd schématu, kterou jste vytvořili dříve, který je umístěn v adresáři projektu a zvolte Open tlačítko.

  6. Zvolte OK tlačítko na Schéma nastavení dialogové okno.

  7. Zvolte OK tlačítka Zavřít šablony a doplňky dialogové okno.

    Strukturu XML otevře podokno úloh.

  8. Zavřít Strukturu XML podokno úloh.

Přidání části vlastní data XML do dokumentu

Před elementy v souboru XML, můžete svázat ovládací prvky obsahu, je nutné přidat obsah souboru XML pro nové vlastní části XML v dokumentu.

Chcete-li přidat vlastní části XML dokumentu

  1. V Průzkumník řešení, otevřete místní nabídku pro ThisDocument.cs nebo ThisDocument.vba pak zvolte Zobrazit kód.

  2. Přidejte následující prohlášení, která ThisDocument třídy.Tento kód deklaruje několik objektů, které budete používat k přidání vlastní části XML dokumentu.

    <Cached()> _
    Public employeeXMLPartID As String = String.Empty
    Private employeeXMLPart As Office.CustomXMLPart
    Private Const prefix As String = "xmlns:ns='https://schemas.microsoft.com/vsto/samples'"
    
    [CachedAttribute()]
    public string employeeXMLPartID = string.Empty;
    private Office.CustomXMLPart employeeXMLPart;
    private const string prefix = "xmlns:ns='https://schemas.microsoft.com/vsto/samples'";
    
  3. Přidejte do třídy ThisDocument následující metodu.Tato metoda načte obsah datového souboru XML, který je vložen jako prostředek v sestavení a vrátí obsah jako řetězec XML.

    Private Function GetXmlFromResource() As String 
        Dim asm As System.Reflection.Assembly = _
            System.Reflection.Assembly.GetExecutingAssembly()
        Dim stream1 As System.IO.Stream = asm.GetManifestResourceStream( _
                "EmployeeControls.employees.xml")
    
        Using resourceReader As System.IO.StreamReader = _
            New System.IO.StreamReader(stream1)
            If resourceReader IsNot Nothing Then 
                Return resourceReader.ReadToEnd()
            End If 
        End Using 
    
        Return Nothing 
    End Function
    
    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. Přidejte do třídy ThisDocument následující metodu.AddCustomXmlPart Metoda vytvoří nový vlastní části XML, který obsahuje řetězec XML, který je předán metodě.

    Zajistit vlastní části XML je vytvořen pouze jednou, metoda vytvoří vlastní XML část pouze v případě, že vlastní části XML s odpovídající identifikátor GUID již neexistuje v dokumentu.Tato metoda je volána, poprvé uloží hodnotu Id vlastnost employeeXMLPartID řetězec.Hodnota employeeXMLPartID řetězec je trvale uložen v dokumentu, protože byla prohlášena za pomocí CachedAttribute atribut.

    Private Sub AddCustomXmlPart(ByVal xmlData As String)
        If xmlData IsNot Nothing Then
    
            employeeXMLPart = Me.CustomXMLParts.SelectByID(employeeXMLPartID)
            If (employeeXMLPart Is Nothing) Then
                employeeXMLPart = Me.CustomXMLParts.Add(xmlData)
                employeeXMLPart.NamespaceManager.AddNamespace("ns", _
                    "https://schemas.microsoft.com/vsto/samples")
                employeeXMLPartID = employeeXMLPart.Id
            End If 
        End If 
    End Sub
    
    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", 
                    @"https://schemas.microsoft.com/vsto/samples");
                employeeXMLPartID = employeeXMLPart.Id;
            }
        }
    }
    

Svázání ovládacích prvků obsahu prvků v části vlastní XML

Každý ovládací prvek svázat prvek v části vlastní XML pomocí XMLMapping vlastnosti každého ovládacího prvku obsahu.

Chcete-li svázat ovládací prvky obsahu prvků v části vlastní XML

  • Přidejte do třídy ThisDocument následující metodu.Tato metoda sváže každý ovládací prvek v části vlastní XML prvek a nastaví formát zobrazení data DatePickerContentControl.

    Private Sub BindControlsToCustomXmlPart()
        Dim xPathName As String = "ns:employees/ns:employee/ns:name" 
        Me.PlainTextContentControl1.XMLMapping.SetMapping(xPathName, _
            prefix, employeeXMLPart)
    
        Dim xPathDate As String = "ns:employees/ns:employee/ns:hireDate" 
        Me.DatePickerContentControl1.DateDisplayFormat = "MMMM d, yyyy" 
        Me.DatePickerContentControl1.XMLMapping.SetMapping(xPathDate, _
            prefix, employeeXMLPart)
    
        Dim xPathTitle As String = "ns:employees/ns:employee/ns:title" 
        Me.DropDownListContentControl1.XMLMapping.SetMapping(xPathTitle, _
            prefix, employeeXMLPart)
    End Sub
    
    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);
    }
    

Spuštění vašeho kódu při na dokument je otevřen.

Vytvořit vlastní části XML a vlastní ovládací prvky vázání dat při otevření dokumentu.

Spuštění kódu při otevření dokumentu

  • Přidejte následující kód, který ThisDocument_Startup metoda ThisDocument třídy.Tento kód získá z řetězec XML employees.xml přidá novou vlastní část XML v dokumentu řetězec XML soubor a naváže ovládací prvky obsahu prvků v části vlastní XML.

    Dim xmlData As String = GetXmlFromResource()
    If xmlData IsNot Nothing Then
        AddCustomXmlPart(xmlData)
        BindControlsToCustomXmlPart()
    End If
    
    string xmlData = GetXmlFromResource();
    
    if (xmlData != null)
    {
        AddCustomXmlPart(xmlData);
        BindControlsToCustomXmlPart();
    }
    

Testování projektu

Při otevření dokumentu, ovládací prvky obsahu zobrazení dat z prvků v části vlastní XML.Po klepnutí DropDownListContentControl vyberte jednu ze tří hodnot platných pro title prvku, které jsou definovány v employees.xsd soubor.Při úpravě dat v jednotlivých ovládacích prvků obsahu, nové hodnoty jsou uloženy v části vlastní XML v dokumentu.

K testování ovládacích prvků obsahu

  1. Stiskněte klávesu F5 ke spuštění projektu.

  2. Ověřte, že tabulky v dokumentu se podobá následující tabulka.Každý z řetězců ve druhém sloupci je získáno prvek v části vlastní XML v dokumentu.

    Jméno zaměstnance

    Karina Leal

    Datum nástupu

    1. Dubna 1999

    Title

    Správce

  3. Zvolte buňku vpravo od buňky jméno zaměstnance a zadejte jiný název.

  4. Zvolte buňku vpravo od buňky datum přijetí a vyberte jiné datum pole pro výběr data.

  5. Vyberte buňku vpravo od buňky záhlaví a vyberte novou položku z rozevíracího seznamu.

  6. Uložte a zavřete dokument.

  7. V Průzkumníku souborů otevřete \bin\Debug složka pod umístění projektu.

  8. Otevření místní nabídky pro EmployeeControls.docx a pak zvolte Přejmenovat.

  9. Název souboru EmployeeControls.docx.zip.

    EmployeeControls.docx dokument je uložen ve formátu Open XML.Přejmenováním tohoto dokumentu s příponou názvu souboru ZIP můžete zkoumat obsah dokumentu.Další informace o Open XML naleznete v článku technické Úvod (2007) formáty Office Open XML souboru.

  10. Otevřete soubor EmployeeControls.docx.zip.

  11. Otevřít customXml složky.

  12. Otevření místní nabídky pro item2.xml a pak zvolte otevřených.

    Tento soubor obsahuje vlastní části XML, který jste přidali do dokumentu.

  13. Ověřte, zda name, hireDate, a title prvky obsahují nové hodnoty, které jste zadali do ovládacích prvků obsahu v dokumentu.

  14. Zavřít item2.xml souboru.

Další kroky

Další informace o použití ovládacích prvků obsahu z těchto témat:

Viz také

Úkoly

Postupy: Přidání ovládacích prvků obsahu do dokumentů aplikace Word

Postupy: Ochrana částí dokumentů pomocí ovládacích prvků obsahu

Koncepty

Automatizace v aplikaci Word s použitím rozšířených objektů

Ovládací prvky obsahu

Přehled hostitelských položek a hostitelských ovládacích prvků

Programová omezení hostitelských položek a hostitelských ovládacích prvků

Přidání ovládacích prvků do dokumentů Office za běhu