Návod: Vytvoření vazby ovládacích prvků obsahu k vlastním částem XML
Tento návod ukazuje, jak vytvořit vazbu ovládacích prvků obsahu v přizpůsobení na úrovni dokumentu pro Word k datům XML uloženým v dokumentu.
Platí pro: Informace v tomto tématu platí pro projekty na úrovni dokumentu pro Word. Další informace naleznete v tématu Funkce dostupné aplikace Office lication a typu projektu.
Word umožňuje ukládat data XML s názvem vlastní části XML v dokumentu. Zobrazení těchto dat můžete řídit vazbou ovládacích prvků obsahu na prvky ve vlastní části XML. Ukázkový dokument v tomto názorném postupu zobrazuje informace o zaměstnanech, které jsou uložené ve vlastní části XML. Když dokument otevřete, ovládací prvky obsahu zobrazí hodnoty elementů XML. Všechny změny provedené v textu v ovládacích prvcích obsahu se uloží do vlastní části XML.
Tento návod znázorňuje následující úlohy:
Přidání ovládacích prvků obsahu do wordového dokumentu v projektu na úrovni dokumentu v době návrhu
Vytvoření datového souboru XML a schématu XML, které definuje prvky, které se mají svázat s ovládacími prvky obsahu.
Připojení schématu XML k dokumentu v době návrhu
Přidání obsahu souboru XML do vlastní části XML v dokumentu za běhu
Vytvoření vazby ovládacích prvků obsahu k prvkům ve vlastní části XML.
Vytvoření vazby DropDownListContentControl na sadu hodnot definovaných ve schématu XML
Poznámka:
Váš počítač může v následujících pokynech zobrazovat odlišné názvy nebo umístění některých prvků uživatelského rozhraní sady Visual Studio. Tyto prvky jsou určeny edicí sady Visual Studio a použitým nastavením. Další informace naleznete v tématu Přizpůsobení integrovaného vývojového prostředí (IDE).
Požadavky
K dokončení tohoto návodu budete potřebovat následující komponenty:
Edice Visual Studia, která zahrnuje nástroje Microsoft Office Developer Tools. Další informace najdete v tématu Konfigurace počítače pro vývoj řešení Office.
Microsoft Word.
Vytvoření nového projektu wordového dokumentu
Vytvořte wordový dokument, který použijete v návodu.
Vytvoření nového projektu wordového dokumentu
Vytvořte projekt wordového dokumentu s názvem EmployeeControls. Vytvořte nový dokument pro řešení. Další informace naleznete v tématu Postupy: Vytváření projektů Office v sadě Visual Studio.
Visual Studio otevře nový wordový dokument v návrháři a přidá projekt EmployeeControls do 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 ovládacích prvků obsahu, ve kterých 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, který je hostovaný v návrháři sady Visual Studio, na pásu karet zvolte kartu Vložení .
Ve skupině Tabulky zvolte Tabulka a vložte tabulku se 2 sloupci a 3 řádky.
Zadejte text do prvního sloupce, aby vypadal podobně jako v následujícím sloupci:
Jméno zaměstnance Datum přijetí Název Ve druhém sloupci tabulky zvolte první řádek (vedle jména zaměstnance).
Na pásu karet zvolte kartu Vývojář .
Poznámka:
Pokud karta Vývojář není viditelná, musíte ji nejdřív zobrazit. Další informace najdete v tématu Postupy: Zobrazení karty Vývojář na pásu karet.
Ve skupině Ovládací prvky zvolte tlačítko Text a přidejte ho PlainTextContentControl do první buňky.
Ve druhém sloupci tabulky zvolte druhý řádek (vedle položky Datum přijetí).
Ve skupině Ovládací prvky zvolte tlačítko Pro výběr data a přidejte DatePickerContentControl ji do druhé buňky.
Ve druhém sloupci tabulky zvolte třetí řádek (vedle nadpisu).
Ve skupině Ovládací prvky zvolte tlačítko Rozevírací seznam a přidejte DropDownListContentControl ji do poslední buňky.
Toto je celé uživatelské rozhraní pro tento projekt. Pokud projekt spustíte teď, můžete zadat text do prvního řádku a vybrat datum ve druhém řádku. Dalším krokem je připojení dat, která chcete zobrazit k dokumentu v souboru XML.
Vytvoření datového souboru XML
Obvykle získáte data XML, která se mají uložit do vlastní části XML z externího zdroje, například ze souboru nebo databáze. V tomto názorném postupu vytvoříte soubor XML, který obsahuje data zaměstnanců označená elementy, které svážete s ovládacími prvky obsahu v dokumentu. Pokud chcete data zpřístupnit za běhu, vložte soubor XML jako prostředek do sestavení přizpůsobení.
Vytvoření datového souboru
V nabídce Projekt zvolte Přidat novou položku.
Zobrazí se dialogové okno Přidat novou položku.
V podokně Šablony vyberte Soubor XML.
Pojmenujte soubor employees.xml a pak zvolte tlačítko Přidat .
Soubor employees.xml se otevře v Editoru kódu.
Obsah souboru employees.xml nahraďte následujícím textem.
<?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>
V Průzkumník řešení zvolte soubor employees.xml.
V okně Vlastnosti vyberte vlastnost Akce sestavení a potom změňte hodnotu na Vložený prostředek.
Tento krok vloží soubor XML jako prostředek do sestavení při sestavení projektu. To umožňuje přístup k obsahu souboru XML za běhu.
Vytvoření schématu XML
Pokud chcete vytvořit vazbu ovládacího prvku obsahu na jeden prvek ve vlastní části XML, nemusíte používat schéma XML. Chcete-li však vytvořit vazbu DropDownListContentControl na sadu hodnot, musíte vytvořit schéma XML, které ověří datový soubor XML, který jste vytvořili dříve. Schéma XML definuje možné hodnoty elementu title
. Později v tomto názorném DropDownListContentControl postupu vytvoříte vazbu k tomuto prvku.
Vytvoření schématu XML
V nabídce Projekt zvolte Přidat novou položku.
Zobrazí se dialogové okno Přidat novou položku.
V podokně Šablony vyberte schéma XML.
Pojmenujte schéma employees.xsd a zvolte tlačítko Přidat .
Otevře se návrhář schématu.
V Průzkumník řešení otevřete místní nabídku pro employees.xsd a pak zvolte Zobrazit kód.
Obsah souboru employees.xsd nahraďte následujícím schématem.
<?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>
V nabídce Soubor klikněte na Uložit vše a uložte změny souborů employees.xml a employees.xsd.
Připojení schématu XML k dokumentu
Chcete-li vytvořit vazbu DropDownListContentControl na platné hodnoty title
elementu, musíte k dokumentu připojit schéma XML.
Připojení schématu XML k dokumentu ( Word 2013 )
Aktivace EmployeeControls.docx v návrháři
Na pásu karet zvolte kartu Vývojář a pak zvolte tlačítko Doplňky .
V dialogovém okně Šablony a doplňky zvolte kartu Schéma XML a pak zvolte tlačítko Přidat schéma .
Přejděte na schéma employees.xsd , které jste vytvořili dříve, které se nachází v adresáři projektu, a pak zvolte tlačítko Otevřít .
V dialogovém okně Nastavení schématu zvolte tlačítko OK.
Kliknutím na tlačítko OK zavřete dialogové okno Šablony a doplňky .
Připojení schématu XML k dokumentu (Word 2010)
Aktivace EmployeeControls.docx v návrháři
Na pásu karet zvolte kartu Vývojář .
Ve skupině XML zvolte tlačítko Schéma.
V dialogovém okně Šablony a doplňky zvolte kartu Schéma XML a pak zvolte tlačítko Přidat schéma .
Přejděte do schématu employees.xsd , které jste vytvořili dříve, který se nachází v adresáři projektu, a zvolte tlačítko Otevřít .
V dialogovém okně Nastavení schématu zvolte tlačítko OK.
Kliknutím na tlačítko OK zavřete dialogové okno Šablony a doplňky .
Otevře se podokno úloh Struktura XML.
Zavřete podokno úloh Struktura XML.
Přidání vlastní části XML do dokumentu
Než budete moct svázat ovládací prvky obsahu s prvky v souboru XML, musíte obsah souboru XML přidat do nové vlastní části XML v dokumentu.
Přidání vlastní části XML do dokumentu
V Průzkumník řešení otevřete místní nabídku pro ThisDocument.cs nebo ThisDocument.vb a pak zvolte Zobrazit kód.
Do třídy přidejte následující deklarace
ThisDocument
. Tento kód deklaruje několik objektů, které použijete k přidání vlastní části XML do dokumentu.Do třídy přidejte následující metodu
ThisDocument
. Tato metoda získá obsah datového souboru XML, který je vložen jako prostředek v sestavení, a vrátí obsah jako řetězec 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; }
Do třídy přidejte následující metodu
ThisDocument
. MetodaAddCustomXmlPart
vytvoří novou vlastní část XML, která obsahuje řetězec XML, který je předán metodě.Chcete-li zajistit, aby vlastní část XML byla vytvořena pouze jednou, metoda vytvoří vlastní část XML pouze v případě, že vlastní část XML s odpovídající identifikátor GUID ještě v dokumentu neexistuje. Při prvním zavolání této metody uloží hodnotu Id vlastnosti do
employeeXMLPartID
řetězce. HodnotaemployeeXMLPartID
řetězce je uložena v dokumentu, protože byla deklarována pomocí atributu CachedAttribute .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; } } }
Vytvoření vazby ovládacích prvků obsahu k prvkům ve vlastní části XML
Vytvořte vazbu každého ovládacího prvku obsahu k elementu ve vlastní části XML pomocí XMLMapping vlastnost každého ovládacího prvku obsahu.
Vytvoření vazby ovládacích prvků obsahu k prvkům ve vlastní části XML
Do třídy přidejte následující metodu
ThisDocument
. Tato metoda vytvoří vazbu každého ovládacího prvku obsahu na prvek ve vlastní XML části a nastaví formát DatePickerContentControlzobrazení data .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í kódu při otevření dokumentu
Vytvořte vlastní část XML a vytvořte vazbu vlastních ovládacích prvků na data při otevření dokumentu.
Spuštění kódu při otevření dokumentu
Do metody
ThisDocument
třídy přidejte následující kódThisDocument_Startup
. Tento kód získá řetězec XML ze souboru employees.xml , přidá řetězec XML do nové vlastní části XML v dokumentu a vytvoří vazbu ovládacích prvků obsahu k prvkům ve vlastní části XML.
Testování projektu
Při otevření dokumentu ovládací prvky obsahu zobrazují data z prvků ve vlastní části XML. Můžete kliknout na DropDownListContentControl výběr jedné ze tří platných hodnot pro title
prvek, které jsou definovány v souboru employees.xsd . Pokud upravíte data v libovolném ovládacím prvku obsahu, nové hodnoty se uloží do vlastní části XML v dokumentu.
Testování ovládacích prvků obsahu
Stisknutím klávesy F5 spusťte projekt.
Ověřte, že se tabulka v dokumentu podobá následující tabulce. Každý z řetězců ve druhém sloupci je získán z elementu ve vlastní části XML v dokumentu.
Column Hodnota Jméno zaměstnance Karina Leal Datum přijetí 1. dubna 1999 Název Manažer Zvolte buňku napravo od buňky Jméno zaměstnance a zadejte jiné jméno.
Zvolte buňku napravo od buňky Datum přijetí a vyberte jiné datum v nástroji pro výběr data.
Zvolte buňku napravo od buňky Název a v rozevíracím seznamu vyberte novou položku.
Uložte a zavřete dokument.
V Průzkumník souborů otevřete složku \bin\Debug pod umístěním projektu.
Otevřete místní nabídku pro EmployeeControls.docx a pak zvolte Přejmenovat.
Pojmenujte soubor EmployeeControls.docx.zip.
Dokument EmployeeControls.docx je uložen ve formátu Open XML. Přejmenováním tohoto dokumentu s příponou názvu souboru .zip můžete prozkoumat obsah dokumentu. Další informace o jazyce Open XML naleznete v technickém článku Představujeme formáty souborů Open XML pro Office (2007).
Otevřete soubor EmployeeControls.docx.zip.
Otevřete složku customXml.
Otevřete místní nabídku položky2.xml a pak zvolte Otevřít.
Tento soubor obsahuje vlastní část XML, kterou jste přidali do dokumentu.
Ověřte, že ovládací prvky
name
,hireDate
atitle
prvky obsahují nové hodnoty, které jste zadali do ovládacích prvků obsahu v dokumentu.Zavřete soubor item2.xml.
Další kroky
Další informace o používání ovládacích prvků obsahu najdete v těchto tématech:
K vytvoření šablony použijte všechny dostupné ovládací prvky obsahu. Další informace naleznete v tématu Návod: Vytvoření šablony pomocí ovládacích prvků obsahu.
Při zavření dokumentu upravte data ve vlastních částech XML. Při příštím otevření dokumentu zobrazí ovládací prvky obsahu vázané na elementy XML nová data.
Ovládací prvky obsahu slouží k ochraně částí dokumentu. Další informace naleznete v tématu Postupy: Ochrana částí dokumentů pomocí ovládacích prvků obsahu.
Související obsah
- Automatizace Wordu pomocí rozšířených objektů
- Ovládací prvky obsahu
- Postupy: Přidání ovládacích prvků obsahu do wordových dokumentů
- Postupy: Ochrana částí dokumentů pomocí ovládacích prvků obsahu
- Přehled hostitelských položek a ovládacích prvků hostitele
- 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