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.
Denetimler. Çalışma kitabında her eşlenen nesne için, programlama modelinde XmlMappedRange denetimi (tekrarlamayan şema öğeleri için) veya ListObject denetimi (tekrarlayan şema öğeleri için) oluşturulur. ListObject denetimi sadece eşlemeler ve eşlenen nesneler çalışma kitabından silindiğinde silinebilir. Denetimler hakkında daha fazla bilgi için bkz. Konak Öğeleri ve Konak Kontrollerine Genel Bakış.
BindingSource. Çalışma sayfasına tekrarlamayan bir şema öğesi eşleyerek XmlMappedRange oluşturduğunuzda, BindingSource yaratılır ve XmlMappedRange denetimi BindingSource'a bağlanır. BindingSource'u, belgeye eşlenen şemaya uyan veri kaynağının bir örneğine bağlamalısınız, örn. oluşturulan türü belirlenmiş DataSet sınıfının bir örneği. Özellikler penceresinde oluşturulan DataSource ve DataMember özelliklerini ayarlayarak bağlama oluşturmalısınız.
Not
BindingSource, ListObject nesneleri için oluşturulmamıştır. Özellikler penceresindeki DataSource ve DataMember özelliklerini ayarlayarak, ListObject kaynağını elle bağlamalısınız.
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