Belge düzeyinde özelleştirmelerde XML şemaları ve verileri
Şunlar için geçerlidir:Visual Studio Mac için Visual Studio Visual 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:
Denetim. Çalışma kitabındaki her eşlenen nesne için, programlama modelinde bir XmlMappedRange denetim (yinelenmeyen şema öğeleri için) veya bir ListObject denetim (yinelenen şema öğeleri için) oluşturulur. Denetim ListObject yalnızca eşlemeler ve eşlenen nesneler çalışma kitabından silinerek silinebilir. Denetimler hakkında daha fazla bilgi için bkz . Konak öğelerine ve konak denetimlerine genel bakış.
Bindingsource. Yinelenen olmayan bir şema öğesini çalışma sayfasına eşleyerek bir XmlMappedRange oluşturduğunuzda, bir BindingSource oluşturulur ve XmlMappedRange denetim öğesine BindingSourcebağlanır. veri kaynağının, oluşturulan türü DataSet belirtilen sınıfın bir örneği gibi, belgeyle eşlenen şemayla eşleşen bir örneğine bağlamanız BindingSource gerekir. Özellikler penceresinde gösterilen ve DataMember özelliklerini ayarlayarak DataSource bağlamayı oluşturun.
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; }