Nasıl yapılır: bir XML belgesi DTD, XDR ve XSD Visual C# .NET kullanarak doğrula

Makale çevirileri Makale çevirileri
Makale numarası: 307379 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu makalede, bir belge türü tanımı (DTD), Microsoft XML-Data Reduced (XDR) şema ya da bir XML şema tanımlama dili (XSD) şema, bir Genişletilebilir Biçimlendirme Dili (XML) için uygulanacak gösterilmiştir belge. Bu makalede, ayrıca önbellek şemalar XmlSchemaCollection sınıfına bellekte XML en iyi duruma getirmek için nasıl yanı sıra, XmlValidatingReader sınıfının bir XML belgesini belirtilen dilbilgisi karşı doğrulamak için nasıl kullanılacağı anlatılır doğrulama.

XML belgeleri, öğeleri ve öznitelikleri içerir. Uygulamaları ve kuruluşlar arasında veri değişimi için esnek ve güçlü bir yol sağlarlar. Izin verilen yapısı ve XML içeriğini belirlemek için belge, DTD, bir XDR şeması ve bir XSD şeması yazabilirsiniz. XSD şemaları Microsoft .NET Framework, ancak DTD içinde XML grammars belirtmek için tercih edilen yöntem, XDR şemalarını de desteklenir.

Gereksinimler

Bu makalede, varsayar, aşağıdaki konularda bilgi sahibi:
  • Microsoft Visual C# .NET veya Microsoft Visual Basic .NET sözdizimi
  • Doğrulama sorunları da dahil olmak üzere, XML kavramları

Bir XML belgesi oluşturma

  1. Visual Studio .NET'i başlatın.
  2. Yerel bilgisayarınızda yeni bir XML dosyası oluşturun.
  3. XML belgesini, Katalogdaki bir ürünü temsil etmek için aşağıdaki verileri ekleyin:
    <Product ProductID="123">
       <ProductName>Rugby jersey</ProductName>
    </Product>
    					
  4. Yeni bir klasöre Product.xml dosya kaydetme C:\MyFolder adı.

DTD kullanma

DTD oluşturmak ve XML belgesine bağlama

  1. Visual Studio. NET'te bir boş bir metin dosyası oluşturun.
  2. Aşağıdaki DTD bildirimi XML belgesinin dilbilgisi tanımlamak için dosyaya ekleyin:
    <!ELEMENT Product (ProductName)>
    <!ATTLIST Product ProductID CDATA #REQUIRED>
    <!ELEMENT ProductName (#PCDATA)>
    					
  3. Dosya içinde C:\MyFolder Product.dtd kaydedin dizin.
  4. Product.XML Visual Studio. NET'te açın.
  5. XML belgesinde DTD'YE dosyaya bağlamak Product.xml üstünde aşağıdaki DOCTYPE deyimini ekleyin:
    <?xml version="1.0"?>
    <!DOCTYPE Product SYSTEM "Product.dtd">
    					
  6. Değiştirilmiş XML belgesi ProductWithDTD.xml kaydedin.

DTD XML belgeyi doğrulamak için kullanın

  1. Visual Studio. NET'te bir yeni Visual C# konsolu oluşturma ValidateXml adlı uygulama proje.
  2. Iki kullanarak ifade Class1.cs başlangıcına kadar aşağıdaki gibi ekleyin:
    using System.Xml;        // for XmlTextReader and XmlValidatingReader
    using System.Xml.Schema; // for XmlSchemaCollection (which is used later)
    					
  3. Class1.cs içinde Main yöntemi başlangıcından önce isValid gibi adlı bir boolean değişkeni bildirin:
    private static bool isValid = true;      // If a validation error occurs,
                                             // set this flag to false in the
                                             // validation event handler. 
  4. XML belgesinin ana yönteminde bir metin dosyasından okumaya XmlTextReader nesne oluşturabilir ve sonra bu XML verileri gibi doğrulamak için bir XmlValidatingReader:
    XmlTextReader r = new XmlTextReader("C:\\MyFolder\\ProductWithDTD.xml");
    XmlValidatingReader v = new XmlValidatingReader(r);
    					
  5. XmlValidatingReader nesnesinin valReader.ValidationType özelliği gerekli (DTD, XDR veya Schema) doğrulama türünü gösterir. Bu özellik DTD aşağıdaki gibi ayarlayın:
    v.ValidationType = ValidationType.DTD;
    					
  6. Doğrulama hataları oluşursa, doğrulama okuyucu bir doğrulama olayı oluşturur. Bir doğrulama olay işleyicisi (adım 8'de MyValidationEventHandler yöntemi gerçekleştireceksiniz) kaydetmek için aşağıdaki kodu ekleyin:
    v.ValidationEventHandler += 
       new ValidationEventHandler(MyValidationEventHandler);
    					
  7. Okuma ve XML doğrulamak için aşağıdaki kodu ekleyin belge. Doğrulama hataları oluşursa, hatayı karşılamak için MyValidationEventHandler denir. Bu yöntem isValid false olarak ayarlar (adım 8 bakın). Belge geçerli veya geçersiz olup olmadığını görmek için doğrulama sonra isValid durumunu denetleyebilirsiniz.
    while (v.Read())
    {
       // Can add code here to process the content.
    }
    v.Close();
    
    // Check whether the document is valid or invalid.
    if (isValid)
       Console.WriteLine("Document is valid");
    else
       Console.WriteLine("Document is invalid");
    					
  8. MyValidationEventHandler yöntemi Main yöntemi sonra aşağıdaki gibi yazın:
    public static void MyValidationEventHandler(object sender, 
                                                ValidationEventArgs args) 
    {
       isValid = false;
       Console.WriteLine("Validation event\n" + args.Message);
    }
    					
  9. Oluşturup uygulamayı çalıştırın. Uygulama, geçerli XML belgesi olduğunu bildirmelisiniz.
  10. Visual Studio. NET'te, geçersiz kılmak için ProductWithDTD.xml değiştirmek (örnek: delete "<productname>Rugby jersey</productname>" öğe).
  11. Uygulamayı yeniden çalıştırın. Aşağıdaki iletiyi almalısınız:
    Doğrulama olayı
    'Ürün' öğesi geçersiz içeriğe sahip. 'ProductName' bekleniyordu.
    File:///C:/MyFolder/ProductWithDTD.xml(4, 5) hatası.
    Belge geçersiz

XDR şeması kullanma

XDR şeması oluşturun ve XML belgesine bağlama

  1. Visual Studio. NET'te bir boş bir metin dosyası oluşturun.
  2. Aşağıdaki XDR şeması tanımları XML belgesinin dilbilgisi tanımlamak için dosyaya ekleyin:
    <?xml version="1.0"?>
    <Schema name="ProductSchema" 
            xmlns="urn:schemas-microsoft-com:xml-data"
            xmlns:dt="urn:schemas-microsoft-com:datatypes">
    
       <ElementType name="Product" content="eltOnly">
          <attribute type="ProductID" required="yes"/>
          <element type="ProductName"/>
       </ElementType>
    
       <AttributeType name="ProductID" dt:type="int"/>
       <ElementType name="ProductName" dt:type="string"/>
    </Schema>
    					
  3. Dosya içinde C:\MyFolder Product.xdr kaydedin dizin.
  4. Özgün Product.xml dosyayı açın ve onu bir bağlantı için XDR şeması aşağıdaki gibi:
    <?xml version="1.0"?>
    <Product ProductID="123" xmlns="x-schema:Product.xdr"> 
       <ProductName>Rugby jersey</ProductName>
    </Product>
    					
  5. Değiştirilmiş XML belgesi ProductWithXDR.xml kaydedin.

XML belgeyi doğrulamak için XDR Şeması'nı kullanın

  1. Uygulamanızın ProductWithXDR.xml XmlTextReader yükler, aşağıdaki şekilde değiştirin:
    XmlTextReader r = new XmlTextReader("C:\\MyFolder\\ProductWithXDR.xml");
    					
  2. Geçerlik okuyucu XDR doğrulama gerçekleştirir için XDRvalReader.ValidationType ayarlayın:
    v.ValidationType = ValidationType.XDR;
    					
  3. Oluşturup uygulamayı çalıştırın. Uygulama, geçerli XML belgesi olduğunu bildirmelisiniz.
  4. Bu geçersiz kılmak için ProductWithXDR.xml değiştirin.
  5. Oluşturma ve uygulamayı yeniden çalıştırın. Bir doğrulama hatası almalısınız.

XSD şeması kullanma

XSD Schema oluşturmak ve XML belgesine bağlama

  1. Visual Studio. NET'te bir boş bir metin dosyası oluşturun.
  2. Aşağıdaki XSD şeması tanımları XML belgesinin dilbilgisi tanımlamak için dosyaya ekleyin:
    <?xml version="1.0"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
       <xsd:element name="Product">
          <xsd:complexType>
             <xsd:sequence>
                <xsd:element name="ProductName" type="xsd:string"/>
             </xsd:sequence>
             <xsd:attribute name="ProductID" use="required" type="xsd:int"/>
          </xsd:complexType>
       </xsd:element>
    </xsd:schema>
    					
  3. Dosya içinde C:\MyFolder Product.xsd kaydedin dizin.
  4. Özgün Product.xml açın ve onu bir bağlantı için XSD şeması aşağıdaki gibi:
    <?xml version="1.0"?>
    <Product ProductID="123" 
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:noNamespaceSchemaLocation="Product.xsd">
       <ProductName>Rugby jersey</ProductName>
    </Product>
    					
  5. Değiştirilmiş XML belgesi ProductWithXSD.xml kaydedin.

Şemayı XSD, XML belgeyi doğrulamak için kullanın

  1. Uygulamanızın ProductWithXSD.xml XmlTextReader yükler, aşağıdaki şekilde değiştirin:
    XmlTextReader r = new XmlTextReader("C:\\MyFolder\\ProductWithXSD.xml");
    					
  2. Geçerlik okuyucu XSD şema doğrulaması gerçekleştirir SchemavalReader.ValidationType ayarlayın:
    v.ValidationType = ValidationType.Schema;
    					
  3. Oluşturma ve XSD şeması XML belgesini doğrulamak için kullanılacak uygulamayı çalıştırın.

Namespaces XSD Schema içinde kullanın...

  1. Visual Studio. NET'te ProductWithXSD.xml açın.
  2. Belge içindeki bir varsayılan ad boşluğu urn: MyNamespace bildirin. Buna ek olarak, bu içerik bu ad alanında doğrulamaya XSD şeması belirtir XSD bağlantıyı değiştirin:
    <?xml version="1.0"?>
    <Product ProductID="123" 
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns="urn:MyNamespace"
             xsi:schemaLocation="urn:MyNamespace Product.xsd">
       <ProductName>Rugby jersey</ProductName>
    </Product>
    					
  3. Değişiklikleri ProductWithXSD.xml için kaydedin.
  4. Product.xsd açın. Şema ad alanı için geçerli olacak şekilde <xsd:schema> başlangıç etiketi şu şekilde değiştirinurn: MyNamespace:
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                targetNamespace="urn:MyNamespace"
                elementFormDefault="qualified">
    					
  5. Değişiklikleri Product.xsd için kaydedin.
  6. Oluşturma ve XSD şeması XML belgesini doğrulamak için kullanılacak uygulamayı çalıştırın.

Önbellek ad alanları

  1. Visual Studio. NET'te Class1.cs açın. Main yöntemi başında XmlSchemaCollection nesneyi aşağıdaki gibi oluşturursunuz:
    XmlSchemaCollection cache = new XmlSchemaCollection();
    					
  2. XmlSchemaCollection nesne bellekte önbellek şemalar için geliştirilmiş performans sağlar. Her şema, farklı bir ad alanıyla ilişkilidir. Önbellek Product.xsd</a0> için aşağıdaki kodu ekleyin:
    cache.Add("urn:MyNamespace", "C:\\MyFolder\\Product.xsd");
    					
  3. Okuyucu, bellek içi şema kullanmak üzere, şema önbelleği için XmlValidatingReader eklemek için XmlValidatingReader oluşturur kodundan sonra aşağıdaki deyimi ekleyin:
    v.Schemas.Add(cache);
    					

It Works That doğrulayın.

  1. Oluşturup sonra da uygulamayı çalıştırın.
  2. XML belgesi hala XSD şeması karşı doğrulandı doğrulayın.
  3. Bu geçersiz kılmak için bu ProductWithXSD.xml değiştirin.
  4. Uygulama, bu doğrulama hatası algıladı doğrulayın.

Özellikler

Makale numarası: 307379 - Last Review: 5 Aralık 2005 Pazartesi - Gözden geçirme: 3.3
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
Anahtar Kelimeler: 
kbmt kbhowtomaster KB307379 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:307379

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com