Belge düzeyinde özelleştirmelerde XML şemaları ve verileri

Şunlar için geçerlidir:yesnoVisual Studio Mac için Visual Studio noVisual Studio Code

Önemli bu konuda Microsoft Word ile ilgili olarak belirlenen bilgiler, yalnızca Birleşik Devletler ve bölgeleri dışında bulunan ya da Microsoft Word Microsoft'un özel XML ile ilgili belirli bir işlevselliği Microsoft Word'dan kaldırdığı Ocak 2010'dan önce Microsoft tarafından lisanslanan ürünler. Microsoft Word ilgili bu bilgiler, microsoft tarafından 10 Ocak 2010 tarihinden sonra lisanslanan ürünler Microsoft Word Birleşik Devletler veya bölgelerinde çalışan veya çalışan programlar geliştiren kişiler veya kuruluşlar tarafından okunamayabilir veya kullanılamaz; söz konusu ürünler, bu tarihten önce lisanslanan ürünlerle aynı şekilde davranmaz veya Birleşik Devletler dışında kullanım için satın alınıp lisanslanmıştır.

Şunlar için geçerlidir: Bu konudaki bilgiler, Excel ve Word için belge düzeyi projeler için geçerlidir. Daha fazla bilgi için bkz. Office uygulama ve proje türüne göre kullanılabilen özellikler.

Microsoft Office Excel ve Microsoft Office Word, şemaları belgelerinize eşleme özelliği sağlar. Bu özellik, XML verilerinin belge içinde ve dışında içeri ve dışarı aktarılmasını basitleştirebilir.

Visual Studio, belge düzeyindeki özelleştirmelerde eşlenen şema öğelerini programlama modelinde denetimler olarak kullanıma sunar. Excel için, Visual Studio denetimleri veritabanlarındaki, Web hizmetlerindeki ve nesnelerdeki verilere bağlama desteği ekler. Word ve Excel için Visual Studio, çözümleriniz için gelişmiş bir son kullanıcı deneyimi oluşturmak üzere şema eşlenmiş bir belgeyle kullanılabilen eylemler bölmeleri için destek 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 şema eklediğinizde, Visual Studio otomatik olarak birkaç nesne oluşturur ve bunları projenize ekler. Bu nesneler Excel tarafından yönetildiği için Visual Studio araçları kullanılarak silinmemelidir. Bunları silmek için, eşlenen öğeleri çalışma sayfasından kaldırın veya Excel araçlarını kullanarak şemayı çıkarı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 XSD uzantısına sahip bir proje öğesi olarak görünür.

  • Yazılan DataSet bir sınıf. Bu sınıf şemaya göre oluşturulur. Bu veri kümesi sınıfı Sınıf Görünümü'nde görünür.

Şema öğeleri Excel çalışma sayfalarına eşlendiğinde oluşturulan nesneler

XML Kaynağı görev bölmesindeki bir şema öğesini çalışma sayfasına eşlerseniz, Visual Studio otomatik olarak birkaç nesne oluşturur ve bunları projenize ekler:

Eşlenen şemaları ve Visual Studio Veri Kaynakları penceresini Office

hem Office eşlenen şema işlevselliği hem de Visual Studio Veri Kaynakları penceresi, raporlama veya düzenleme amacıyla Excel çalışma sayfasında veri sunmanıza yardımcı olabilir. Her iki durumda da veri öğelerini Excel çalışma sayfasına sürükleyebilirsiniz. Her iki yöntem de veya web hizmeti gibi bir veri kaynağına bağlı BindingSource veriler olan DataSet denetimler oluşturur.

Not

Yinelenen bir şema öğesini bir çalışma sayfasına eşlediğinizde, Visual Studio bir ListObjectoluşturur. ListObject aracılığıyla verilere BindingSourceotomatik olarak bağlı değildir. Özellikler penceresinde ve DataMember özelliklerini ayarlayarak DataSource veri kaynağına el ile bağlamanız ListObject gerekir.

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

XML şeması Veri Kaynakları penceresi
Office arabirimini kullanır. Visual Studio'da Veri Kaynakları penceresini kullanır.
XML dosyalarından verileri içeri ve dışarı aktarmaya yönelik yerleşik Office özelliklerini etkinleştirir. İçeri ve dışarı aktarma işlevini program aracılığıyla sağlamanız gerekir.
Oluşturulan denetimleri verilerle doldurmak için kod yazmanız gerekir. Veri Kaynakları penceresinden eklenen denetimler , veritabanı sunucularını kullanırken gerekli bağlantı dizeleriyle birlikte bunları doldurmak için otomatik olarak kod oluşturur.

Şemalar Word belgelerine eklendiğinde davranış

Belge düzeyi Office projesinde kullanılan bir Word belgesine şema eklediğinizde veri nesneleri oluşturulmaz. Ancak, belgenize bir şema öğesi eşlediğinizde denetimler oluşturulur. Denetimin türü, eşlediğiniz öğenin türüne bağlıdır; yinelenen öğeler denetimler oluştururken XMLNodes , yinelenmeyen öğeler denetimler oluşturur XMLNode . Daha fazla bilgi için bkz. XMLNodes Denetimi ve XMLNode Denetimi.

XML şemaları içeren çözümlerin dağıtımı

Bir belgeye eşlenmiş XML şeması kullanan bir çözümü dağıtmak için bir yükleyici oluşturmanız gerekir. Yükleyicinin şemayı kullanıcının bilgisayarındaki şema kitaplığına kaydetmesi gerekir. Şemayı kaydetmezseniz, word belgeyi açtığında belgedeki öğeleri temel alan geçici bir şema oluşturduğundan çözüm çalışmaya devam eder. Ancak, kullanıcı projeyi oluşturmak için kullanılan şema üzerinde doğrulama gerçekleştiremez veya bu şemayı kaydedemez. Yükleyiciler hakkında daha fazla bilgi için bkz . Uygulamaları, hizmetleri ve bileşenleri dağıtma.

Şemanın kitaplıkta olup olmadığını ve kaydedilip kaydedilmediğini denetlemek için projenize kod da ekleyebilirsiniz. Değilse kullanıcıyı uyarabilirsiniz.

// 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.