Aracılığıyla paylaş


Belge Düzeyi Özelleştirmelerde XML Şemaları ve Verileri

Önemli Microsoft Word ile ilgili, bu konudaki ayarlanan bilgileri yararı ve kullanımı, kişi ve kuruluşların kim ABD ve kendi bölgeleri dışında bulunan veya kimin kullanarak veya Ocak 2010, Microsoft Microsoft Word'den özel XML ilişkili belirli işlevler uygulaması ne zaman kaldırıldı önce Microsoft tarafından lisanslı Microsoft Word ürünleri üzerinde çalışan programlar geliştirmek için özel olarak sunulur. Bu bilgiler Microsoft Word ile ilgili değil okunamaz veya Bireylere veya kuruluşlara ABD veya kullanma veya Microsoft tarafından 10 Ocak 2010'dan sonra lisanslı Microsoft Word'ün ürünleri hakkında çalışan programlar geliştirmek, bölgeler tarafından kullanılan; Bu ürünleri bu tarihten önce lisanslı veya satın alınan ve ABD dışında kullanmak için lisanslı ürünleri ile aynı davranmaz.

Uygulama alanı: Bu konudaki bilgiler şu uygulamaların belge düzeyi projelerine yöneliktir: Excel 2007 ve Excel 2010; Word 2007 ve Word 2010. Daha fazla bilgi için bkz. Office Uygulamalarında Kullanılabilir Özellikler ve Proje Türü.

Microsoft Office Word ve Microsoft Office Excel, belgelerinize şemaları eşleme yeteneği sağlar. Bu özellik XML verilerini belgenin içine almayı veya belgenin dışına vermeyi kolaylaştırır.

Visual Studio, belge düzeyi özelleştirmelerini programlama modelindeki denetimler olarak oluşturur. Excel'de Visual Studio, denetimleri veritabanlarına, Web servislerine ve nesnelere bağlamak için destek ekler. Word ve Excel'de Visual Studio, çözümleriniz için geliştirilmiş son kullanıcı deneyimi oluşturmak amacıyla şema eşlenmiş belgeyle birlikte kullanılabilecek eylemler bölmesine dester ekler. Daha fazla bilgi için bkz. Eylemler Bölmesine Genel Bakış.

Not

Excel çözümlerinde çok parçalı XML şemaları kullanamazsınız.

Şemalar Excel Çalışma Kitaplarına Eklendiğinde Oluşturulan Nesneler

Çalışma kitabına bir şema iliştirdiğinizde, Visual Studio otomatik olarak birçok nesne oluşturur ve onları projenize ekler. Bu nesneler Visual Studio araçları kullanırken silinmemelidir, çünkü onlar Excel tarafından yönetilir. Onları silmek için, çalışma safyasından eşlenmiş öğeleri kaldırın veya Excel araçlarını kullanarak şemayı ayırın.

İki ana nesne vardır:

  • XML şeması (XSD dosyası). Çalışma kitabındaki her şema için, Visual Studio projeye bir şema ekler. Bu, Çözüm Gezgini'nde XSD uzantısı ile bir proje öğesi olarak görünür.

  • Yazılmış bir DataSet sınıfı. Bu sınıf şemaya bağlıdır. Bu veri kümesi sınıfı Sınıf Görünümü'nde görünürdür.

Şema Öğeleri Excel Çalışma Sayfalarına Eşlendiğinde Oluşturulan Nesneler

XML Kaynağı görev bölmesinden çalışma sayfasına bir şema öğesi eşlediğinizde, Visual Studio otomatik olarak birçok nesne oluşturur ve onları projenize ekler.

Office Eşlenmiş Şemalar ve Visual Studio Veri Kaynakları Penceresi

Office ve Visual Studio Veri Kaynakları penceresinin eşlenmiş şema özelliği, raporlamanız veya düzenlemeniz için veriyi Excel çalışma sayfasında göstermenize yardım eder. Her iki durumda da Excel çalışma sayfalarına veri öğelerini sürükleyebilirsiniz. Her iki yöntem de veri kaynağına BindingSource yoluyla veri bağlaması olan denetimler oluşturur, örn. DataSet veya Web servisi.

Not

Tekrarlayan bir şema öğesini çalışma sayfasına eşlediğinizde, Visual Studio ListObject oluşturur. ListObject, veriye BindingSource yoluyla otomatik olarak bağlanmaz. Özellikler penceresindeki DataSource ve DataMember özelliklerini ayarlayarak, ListObject kaynağını elle bağlamalısınız.

Aşağıdaki tabloda iki yöntem arasındaki bazı farklar gösterilmektedir.

XML şeması

Veri Kaynakları penceresi

Office arayüzü kullanır.

Visual Studio'daki Veri Kaynakları'nı kullanır.

XML dosyalarından verinin alınması ve verilmesi için yerel Office özelliklerini etkinleştirir.

Programlı olarak alma ve verme özelliğini sağlamalısınız.

Oluşturulan denetimleri veriyle doldurmak için kod yazmalısınız.

Veri Kaynakları penceresinden eklenen denetimler, veritabanı sunucularını kullandığınızda gerekli bağlantı dizeleriyle birlikte otomatik olarak onları doldurmak için kod yaratır.

Şemalar Word Belgelerine İliştirildiğindeki Davranışlar

Belge düzeyi Office projesinde kullanılan bir Word belgesine şema iliştirdiğinizde veri nesneleri oluşturulmaz. Fakat, belgenize şema öğesi eşleştirdiğinizde denetimler oluşturulur. Denetimin türü, hangi tür öğeyi eşleştirdiğinize bağlıdır; tekrarlayan öğeler XMLNodes denetimleri ve tekrarlanmayan öğeler XMLNode denetimleri yaratır. Daha fazla bilgi için bkz. XMLNodes Denetimi ve XMLNode (XMLDüğümü) Denetimi.

XML Şemaları İçeren Çözümlerin Dağıtımı

Belgeye eşlenen XML şemaları kullanan bir çözünü dağıtmak için bir yükleyici oluşturmalısınız. Yükleyici, kullanıcının bilgisayarındaki şema kitaplığındaki şemaya kayıt olmalıdır. Eğer şemayı kaydetmezseniz, çözüm hala çalışır çünkü Word, kullanıcı belgeyi açtığında orada olan öğeler için geçici bir şema yaratır. Fakat, kullanıcı doğrulamayı gerçekleştiremez veya proje oluşturmak için kullanılan şema kaydedilemez. Yükleyiciler hakkında daha fazla bilgi için bkz. Uygulamaları ve Bileşenleri Dağıtma.

Şemanın kitalıkta ve kayıtlı olup olmadığını denetlemek için de projenize kod ekleyebilirsiniz. Eğer değilse, kullanıcıyı uyarabilirsiniz.

' Ensure that the schema is in the library and registered with the document.
Private Function CheckSchema() As Boolean

    Const namespaceUri As String = "http://schemas.contoso.com/projects"
    Dim namespaceFound As Boolean = False
    Dim namespaceRegistered As Boolean = False

    Dim n As Word.XMLNamespace
    For Each n In Application.XMLNamespaces
        If (n.URI = namespaceUri) Then
            namespaceFound = True
        End If
    Next

    If Not namespaceFound Then
        MessageBox.Show("XML Schema is not in library.")
        Return False
    End If

    Dim r As Word.XMLSchemaReference
    For Each r In Me.XMLSchemaReferences
        If (r.NamespaceURI = namespaceUri) Then
            namespaceRegistered = True
        End If
    Next

    If Not namespaceRegistered Then
        MessageBox.Show("XML Schema is not registered for this document.")
        Return False
    End If

    Return True
End Function
// 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;
}

Ayrıca bkz.

Görevler

Nasıl Yapılır: Visual Studio İçindeki Çalışma Sayfalarıyla Şemaları Eşleştirme

Nasıl Yapılır: Visual Studio İçindeki Çalışma Sayfalarıyla Şemaları Eşleştirme