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:
Edice Visual Studia 2013, která zahrnuje nástroje Microsoft Office Developer Tools. Další informace najdete v tématu Konfigurace počítače pro vývoj řešení pro systém Office.
Word 2013 nebo Word 2010.
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
Vytvořte projekt aplikace Word dokument s názvem EmployeeControls.Vytvořte nový dokument pro řešení.Další informace naleznete v tématu Postupy: Vytváření projektů pro systém Office v prostředí Visual Studio.
Visual StudioNový dokument aplikace Word se otevře v návrháři a přidá do projektu EmployeeControls na Průzkumník řešení.
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
V dokumentu aplikace Word, jehož hostitelem je aplikace Visual Studio zvolte Návrhář pásu karet Vložit kartu.
V tabulky skupinu, zvolte Tabulkaa vložte tabulku se sloupci 2 a 3 řádky.
Zadejte text v prvním sloupci tak, aby se podobá následující sloupce:
Jméno zaměstnance
Datum nástupu
Title
Ve druhém sloupci tabulky, vyberte první řádek (vedle Jméno zaměstnance).
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.
V prvky skupinu, zvolte textu tlačítko přidat PlainTextContentControl na první buňku.
Ve druhém sloupci tabulky, vyberte druhý řádek (vedle Datum přijetí).
V prvky skupinu, zvolte Ovládací prvek Výběr data tlačítko přidat DatePickerContentControl do druhé buňky.
V druhém sloupci tabulky zvolte třetí řádek (vedle hlavy).
V prvky skupinu, zvolte Rozevíracího seznamu tlačítko 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
V nabídce Projekt klikněte na příkaz Přidat novou položku.
Zobrazí se dialogové okno Přidat novou položku.
V šablony podokně vyberte XML souboru.
Zadejte název souboru employees.xmla pak zvolte Přidat tlačítko.
Employees.xml soubor se otevře v editoru kódu.
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>
V Průzkumník řešení, zvolte employees.xml souboru.
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
V nabídce Projekt klikněte na příkaz Přidat novou položku.
Zobrazí se dialogové okno Přidat novou položku.
V šablony podokně vyberte Schématu XML.
Název schématu employees.xsd a zvolte Přidat tlačítko.
Otevře se Návrhář schématu.
V Průzkumník řešení, otevřete místní nabídku pro employees.xsda pak zvolte Zobrazit kód.
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>
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)
Aktivovat EmployeeControls.docx v návrháři.
Na pásu karet, zvolte Developer a potom klikněte na příkaz Doplňky tlačítko.
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.
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.
Zvolte OK tlačítko na Schéma nastavení dialogové okno.
Zvolte OK tlačítka Zavřít šablony a doplňky dialogové okno.
Připojení schématu XML k dokumentu (Word 2010)
Aktivovat EmployeeControls.docx v návrháři.
Na pásu karet, zvolte Developer kartu.
V XML skupinu, zvolte schéma tlačítko.
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.
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.
Zvolte OK tlačítko na Schéma nastavení dialogové okno.
Zvolte OK tlačítka Zavřít šablony a doplňky dialogové okno.
Strukturu XML otevře podokno úloh.
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
V Průzkumník řešení, otevřete místní nabídku pro ThisDocument.cs nebo ThisDocument.vba pak zvolte Zobrazit kód.
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'";
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; }
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
Stiskněte klávesu F5 ke spuštění projektu.
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
Zvolte buňku vpravo od buňky jméno zaměstnance a zadejte jiný název.
Zvolte buňku vpravo od buňky datum přijetí a vyberte jiné datum pole pro výběr data.
Vyberte buňku vpravo od buňky záhlaví a vyberte novou položku z rozevíracího seznamu.
Uložte a zavřete dokument.
V Průzkumníku souborů otevřete \bin\Debug složka pod umístění projektu.
Otevření místní nabídky pro EmployeeControls.docx a pak zvolte Přejmenovat.
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.
Otevřete soubor EmployeeControls.docx.zip.
Otevřít customXml složky.
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.
Ověřte, zda name, hireDate, a title prvky obsahují nové hodnoty, které jste zadali do ovládacích prvků obsahu v dokumentu.
Zavřít item2.xml souboru.
Další kroky
Další informace o použití ovládacích prvků obsahu z těchto témat:
Chcete-li vytvořit šablonu použijte všechny dostupné prvky obsahu.Další informace naleznete v tématu Návod: Vytvoření šablony s použitím ovládacích prvků obsahu.
Změňte data v části vlastní XML při zavření dokumentu.Při příštím otevření dokumentu, ovládací prvky obsahu, které jsou vázány na prvky XML se zobrazí nová data.
Použití obsahu ovládací prvky pro ochranu částí dokumentu.Další informace naleznete v tématu Postupy: Ochrana částí dokumentů pomocí ovládacích prvků obsahu.
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ů
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ů