Udostępnij za pośrednictwem


Schematy i dane XML w dostosowaniach na poziomie dokumentu

Ważne Informacje przedstawione w tym temacie dotyczące programu Microsoft Word są prezentowane wyłącznie dla korzyści i korzystania z osób fizycznych i organizacji znajdujących się poza Stany Zjednoczone i jego terytoriami lub korzystającymi z nich lub programami, które są uruchamiane w produktach Microsoft Word, które zostały licencjonowane przez firmę Microsoft przed styczniem 2010 r., gdy firma Microsoft usunęła implementację określonych funkcji związanych z niestandardowym kodem XML z Microsoft Word. Te informacje dotyczące programu Microsoft Word mogą nie być odczytywane ani używane przez osoby lub organizacje w Stany Zjednoczone lub jego terytoriach korzystających lub programach, które są uruchamiane, produkty Microsoft Word, które zostały licencjonowane przez firmę Microsoft po 10 stycznia 2010 r.; te produkty nie będą zachowywać się tak samo jak produkty licencjonowane przed tą datą lub zakupione i licencjonowane do użytku poza programem Stany Zjednoczone.

Dotyczy: informacje w tym temacie dotyczą projektów na poziomie dokumentu dla programów Excel i Word. Aby uzyskać więcej informacji, zobacz Funkcje dostępne przez aplikacja pakietu Office lication i typ projektu.

Programy Microsoft Office Excel i Microsoft Office Word zapewniają możliwość mapowania schematów na dokumenty. Ta funkcja może uprościć importowanie i eksportowanie danych XML do i z dokumentu.

Program Visual Studio uwidacznia zamapowane elementy schematu w dostosowaniach na poziomie dokumentu jako kontrolki w modelu programowania. W przypadku programu Excel program Visual Studio dodaje obsługę powiązania kontrolek z danymi w bazach danych, usługach sieci Web i obiektach. W przypadku programów Word i Excel program Visual Studio dodaje obsługę okienek akcji, których można używać z mapowanym schematem dokumentu w celu utworzenia ulepszonego środowiska użytkownika końcowego dla Twoich rozwiązań. Aby uzyskać więcej informacji, zobacz Omówienie okienka akcji.

Uwaga

Nie można używać wieloczęściowych schematów XML w rozwiązaniach programu Excel.

Obiekty utworzone podczas dołączania schematów do skoroszytów programu Excel

Po dołączeniu schematu do skoroszytu program Visual Studio automatycznie tworzy kilka obiektów i dodaje je do projektu. Te obiekty nie powinny być usuwane przy użyciu narzędzi programu Visual Studio, ponieważ są zarządzane przez program Excel. Aby je usunąć, usuń zamapowane elementy z arkusza lub odłącz schemat przy użyciu narzędzi programu Excel.

Istnieją dwa główne obiekty:

  • Schemat XML (plik XSD). Dla każdego schematu w skoroszycie program Visual Studio dodaje schemat do projektu. Jest to element projektu z rozszerzeniem XSD w Eksplorator rozwiązań.

  • Typowana DataSet klasa. Ta klasa jest tworzona na podstawie schematu. Ta klasa zestawu danych jest widoczna w widoku klasy.

Obiekty utworzone podczas mapowania elementów schematu na arkusze programu Excel

Podczas mapowania elementu schematu z okienka zadań Źródło XML do arkusza program Visual Studio automatycznie tworzy kilka obiektów i dodaje je do projektu:

  • Formantów. Dla każdego zamapowanego obiektu w skoroszycie XmlMappedRange w modelu programowania jest tworzona kontrolka (dla nie powtarzających się elementów schematu) lub ListObject kontrolka (dla powtarzających się elementów schematu). Kontrolkę ListObject można usunąć tylko przez usunięcie mapowań i zamapowanych obiektów ze skoroszytu. Aby uzyskać więcej informacji na temat kontrolek, zobacz Host items and host controls overview (Omówienie elementów hosta i kontrolek hosta).

  • Bindingsource. Podczas tworzenia XmlMappedRange elementu przez mapowanie elementu schematu nie powtarzającego się do arkusza jest tworzony, a BindingSource kontrolka XmlMappedRange jest powiązana z elementem BindingSource. Musisz powiązać element z BindingSource wystąpieniem źródła danych zgodnego ze schematem zamapowanym na dokument, takim jak wystąpienie klasy typizowanej DataSet , która została utworzona. Utwórz powiązanie, ustawiając DataSource właściwości i DataMember , które są widoczne w oknie Właściwości .

    Uwaga

    Obiekt BindingSource nie jest tworzony dla ListObject obiektów. Musisz ręcznie powiązać ListObject element ze źródłem danych, ustawiając DataSource właściwości i DataMember w oknie Właściwości .

Schematy mapowane pakietu Office i okno Źródła danych programu Visual Studio

Zarówno zamapowane funkcje schematu pakietu Office, jak i okna Źródła danych programu Visual Studio mogą ułatwić prezentowanie danych w arkuszu programu Excel na potrzeby raportowania lub edytowania. W obu przypadkach można przeciągnąć elementy danych do arkusza programu Excel. Obie metody tworzą kontrolki, które są danymi powiązanymi ze BindingSource źródłem danych, takim jak DataSet usługa internetowa lub .

Uwaga

Podczas mapowania powtarzającego się elementu schematu na arkusz program Visual Studio tworzy element ListObject. Element ListObject nie jest automatycznie powiązany z danymi za pośrednictwem .BindingSource Musisz ręcznie powiązać ListObject element ze źródłem danych, ustawiając DataSource właściwości i DataMember w oknie Właściwości .

W poniższej tabeli przedstawiono niektóre różnice między dwiema metodami.

Schemat XML Data Sources — Okno
Używa interfejsu pakietu Office. Używa okna Źródła danych w programie Visual Studio.
Umożliwia wbudowane funkcje pakietu Office do importowania i eksportowania danych z plików XML. Należy programowo podać funkcje importowania i eksportowania.
Musisz napisać kod, aby wypełnić wygenerowane kontrolki danymi. Kontrolki dodane z okna Źródła danych mają kod wygenerowany automatycznie, aby je wypełnić, wraz z niezbędnymi parametry połączenia podczas korzystania z serwerów baz danych.

Zachowanie podczas dołączania schematów do dokumentów programu Word

Obiekty danych nie są tworzone podczas dołączania schematu do dokumentu programu Word używanego w projekcie pakietu Office na poziomie dokumentu. Jednak podczas mapowania elementu schematu na dokument tworzone są kontrolki. Typ kontrolki zależy od typu mapowania elementu; powtarzające się elementy generują XMLNodes kontrolki i nie powtarzające się elementy generują kontrolki XMLNode . Aby uzyskać więcej informacji, zobacz Kontrolka XMLNodes i kontrolka XMLNode.

Wdrażanie rozwiązań obejmujących schematy XML

Należy utworzyć instalatora, aby wdrożyć rozwiązanie korzystające ze schematu XML mapowanego na dokument. Instalator powinien zarejestrować schemat w bibliotece schematów na komputerze użytkownika. Jeśli schemat nie zostanie zarejestrowany, rozwiązanie będzie nadal działać, ponieważ program Word generuje tymczasowy schemat na podstawie elementów, które znajdują się w dokumencie po otwarciu go przez użytkownika. Jednak użytkownik nie będzie mógł przeprowadzić walidacji względem lub zapisać schematu użytego do utworzenia projektu. Aby uzyskać więcej informacji na temat instalatorów, zobacz Wdrażanie aplikacji, usług i składników.

Możesz również dodać kod do projektu, aby sprawdzić, czy schemat znajduje się w bibliotece i jest zarejestrowany. Jeśli tak nie jest, możesz ostrzec użytkownika.

// Ensure that the schema is in the library and registered with the document.
private bool CheckSchema()
{
    const string namespaceUri = "http://schemas.contoso.com/projects";
    bool namespaceFound = false;
    bool namespaceRegistered = false;

    foreach (Word.XMLNamespace n in Application.XMLNamespaces)
    {
        if (n.URI == namespaceUri)
        {
            namespaceFound = true;
        }
    }

    if (!namespaceFound)
    {
        MessageBox.Show("XML Schema is not in library.");
        return false;
    }

    foreach (Word.XMLSchemaReference r in this.XMLSchemaReferences) 
    {
        if (r.NamespaceURI == namespaceUri)
        {
            namespaceRegistered = true;
        }
    }

    if (!namespaceRegistered)
    {
        MessageBox.Show("XML Schema is not registered for this document.");
        return false;
    }
    
    return true;
}