DTD, XDR veya XSD Visual C# .NET kullanarak bir XML belgesini doğrulamak nasıl

ÖNEMLİ: Bu makale, Microsoft Makine Çevirisi Düzenleme yazılımı tarafından tercüme edilmiş olup, yüksek olasılıkla profesyonel bir çevirmen yerine CTF teknolojisi kullanılarak, Microsoft Topluluğu tarafından düzenlenmiştir. Microsoft, Bilgi Bankamız içindeki tüm makaleleri kendi dilinizde okuyabilmeniz için size hem profesyonel çevirmenler tarafından tercüme edilen hem de makine tarafından tercüme edildikten sonra Topluluk tarafından kontrol edilen makaleler sunar. Bununla birlikte, makine tarafından tercüme edilen, hatta Topluluk tarafından kontrol edilen bir makale bile her zaman mükemmel dil kalitesinde olmayabilir. Makalede dilinizi konuşan yabancı birisinin yapabileceği türden sözcük, söz dizimi veya dilbilgisi hataları bulunabilir. Microsoft, içeriğin hatalı tercümesinin veya müşterilerimiz tarafından kullanımının doğurabileceği olası yanlış anlamalar, hatalar veya zararlardan sorumlu değildir. Öte yandan Microsoft, Makine Çevirisi Düzenleme işlemini geliştirmek amacıyla Makine Çevirisi Düzenleme yazılımını ve araçlarını sık sık güncelleştirmektedir.

Makalenin İngilizcesi aşağıdaki gibidir: 307379
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
Özet
Bu makalede, bir belge türü tanımı (DTD), bir Microsoft XML-Data Reduced (XDR) şema ya da XML Schema Definition dili (XSD) şema uygulamak için bir Genişletilebilir Biçimlendirme Dili (XML) belge gösterilmiştir. Bu makalede ayrıca XML doğrulaması iyileştirmek amacıyla bellekte önbellek şemaları XmlSchemaCollection sınıfı kullanmak nasıl yanı sıra, XmlValidatingReader sınıfının belirtilen dilbilgisi karşı bir XML belgesini doğrulamak için nasıl kullanılacağını açıklar.

XML belgeleri, öğeleri ve öznitelikleri içerir. Uygulamalar ve kuruluşlar arasında veri alışverişi yapmak için esnek ve güçlü bir yol sağlarlar. İzin verilen yapısı ve içeriği, XML belgesinin belirtmek için DTD, XDR şeması veya XSD şeması yazabilirsiniz. XSD şemaları XML aynı Microsoft olan .NET Framework ancak DTD'ler belirtmek için tercih edilen yöntemdir ve XDR şemalarını da desteklenir.

back to the top

Gereksinimleri

Bu makalede, varsayar, aşağıdaki konularda bilgi sahibi:
  • Microsoft C# VISUAL veya Microsoft Visual Basic. NETsyntax
  • Doğrulama sorunları da dahil olmak üzere, XML kavramları
back to the top

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. Katalogdaki aproduct temsil eden XML belgesini aşağıdaki verileri ekleyin:
    <Product ProductID="123">   <ProductName>Rugby jersey</ProductName></Product>					
  4. Dosyayı Product.xml yeni bir klasör namedC:\MyFolder kaydedin.
back to the top

DTD'yi kullanan

DTD yaratýn ve XML belgesine bağlama

  1. Visual Studio .NET içinde boş bir textfile oluşturun.
  2. Aşağıdaki DTD bildirimi XML belgesinin describethe dilbilgisi dosyasına ekleyin:
    <!ELEMENT Product (ProductName)><!ATTLIST Product ProductID CDATA #REQUIRED><!ELEMENT ProductName (#PCDATA)>					
  3. C:\MyFolderdirectory içinde Product.dtd olarak kaydedin.
  4. Visual Studio .NET Product.XML açın.
  5. Aşağıdaki DOCTYPE bildirimi XML belge DTD dosyasını bağlamaya Product.xml üstüne ekleyin:
    <?xml version="1.0"?><!DOCTYPE Product SYSTEM "Product.dtd">					
  6. Değiştirilmiş XML belgesi asProductWithDTD.xml kaydedin.
back to the top

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

  1. Visual Studio .NET ValidateXml adlı yeni bir Visual C# ConsoleApplication projesi oluşturun.
  2. Class1.cs başlangıcına kadar iki using ifadelerini ekleyin:
    using System.Xml;        // for XmlTextReader and XmlValidatingReaderusing System.Xml.Schema; // for XmlSchemaCollection (which is used later)					
  3. Class1.cs içinde aşağıdaki gibi Main yöntemi başlamadan önce IsValid 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. Main yönteminde bir metin dosyasından bir XML belgesini okumak için XmlTextReader nesnesini oluşturun ve sonra aşağıdaki gibi bu XML verileri doğrulamak için bir XmlValidatingReader oluşturun:
    XmlTextReader r = new XmlTextReader("C:\\MyFolder\\ProductWithDTD.xml");XmlValidatingReader v = new XmlValidatingReader(r);					
  5. XmlValidatingReader nesnesinin valReader.ValidationType özelliğini gerekli (DTD, XDRya da şema) 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 doğrulama olayı readergenerates. (Adım 8'de MyValidationEventHandler yöntemini uygulayacak) bir validationevent işleyicisi kaydetmek için aşağıdaki kodu ekleyin:
    v.ValidationEventHandler +=    new ValidationEventHandler(MyValidationEventHandler);					
  7. Okuyup XMLdocument doğrulamak için aşağıdaki kodu ekleyin. Doğrulama hataları oluşursa, hatayı gidermek için MyValidationEventHandler adı verilir. Bu yöntem IsValid false olarak ayarlar (adım 8'e bakınız). Belgenin geçerli 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. Yapı ve uygulamayı çalıştırın. XML belgesinin geçerli uygulama shouldreport.
  10. Visual Studio .NET ProductWithDTD.xml toinvalidate değiştirmek, (örneğin, "<ProductName>Rugbyjersey</ProductName>" öğesini silin).
  11. Uygulamayı yeniden çalıştırın. Followingerror iletisi almanız gerekir:
    Doğrulama olayı
    Öğe ' geçersiz içerik Product'has. 'ProductName' bekleniyor.
    (4, 5) olan atfile:///C:/MyFolder/ProductWithDTD.xml bir hata oluştu.
    Belge geçersiz
back to the top

XDR şeması kullanma

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

  1. Visual Studio .NET içinde boş bir textfile oluşturun.
  2. Aşağıdaki XDR şema tanımlarını dilbilgisi XML belgesinin dosya todescribe 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. C:\MyFolderdirectory içinde Product.xdr olarak kaydedin.
  4. Özgün Product.xml dosyası açın ve XDRschema için aşağıdaki gibi bağlayın:
    <?xml version="1.0"?><Product ProductID="123" xmlns="x-schema:Product.xdr">    <ProductName>Rugby jersey</ProductName></Product>					
  5. Değiştirilmiş XML belgesi asProductWithXDR.xml kaydedin.
back to the top

XML belgesini doğrulamak için XDR şeması kullanma

  1. Uygulamanız XmlTextReader yükler ProductWithXDR.xml aşağıdaki gibi değiştirin:
    XmlTextReader r = new XmlTextReader("C:\\MyFolder\\ProductWithXDR.xml");					
  2. Böylece doğrulama okuyucu XDR doğrulamayı gerçekleştiren valReader.ValidationTypeXDR için ayarlayın:
    v.ValidationType = ValidationType.XDR;					
  3. Yapı ve uygulamayı çalıştırın. XML belgesinin geçerli uygulama shouldreport.
  4. Onu geçersiz kılmak için ProductWithXDR.xml değiştirin.
  5. Yapı ve uygulamayı yeniden çalıştırın. Avalidation hata alacaksınız.
back to the top

XSD şemasını kullanma

XSD şema oluşturma ve XML belgesine bağlama

  1. Visual Studio .NET içinde boş bir textfile oluşturun.
  2. Aşağıdaki XSD şema tanımlarını dilbilgisi XML belgesinin dosya todescribe 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. C:\MyFolderdirectory içinde Product.xsd olarak kaydedin.
  4. Özgün Product.xml açın ve XSDschema için aşağıdaki gibi bağlayın:
    <?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 asProductWithXSD.xml kaydedin.
back to the top

XSD şeması, XML belgesini doğrulamak için kullanın

  1. Uygulamanız XmlTextReader yükler ProductWithXSD.xml aşağıdaki gibi değiştirin:
    XmlTextReader r = new XmlTextReader("C:\\MyFolder\\ProductWithXSD.xml");					
  2. ValReader.ValidationTypeşema doğrulama okuyucu XSD şema doğrulaması gerçekleştirir şekilde ayarlayın:
    v.ValidationType = ValidationType.Schema;					
  3. Yapı ve XSD şeması tovalidate XML belgesini kullanmak için uygulamayı çalıştırın.
back to the top

XSD şemasında ad alanlarý kullanmak

  1. Visual Studio .NET ProductWithXSD.xml açın.
  2. Belge içindeki bir varsayılan ad alanı urn: MyNamespace bildirin. Ayrıca, böylece XSD bağlantıyı değiştirmek o Minimize XSD şeması, bu ad alanındaki içeriği doğrulamak için:
    <?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. ProductWithXSD.xml için yaptığınız değişiklikleri kaydedin.
  4. Product.xsd açın. Değiştirmek <xsd:schema>Başlangıç tagas izlediği şema urn: MyNamespacead alanı için geçerlidir:</xsd:schema>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"            targetNamespace="urn:MyNamespace"            elementFormDefault="qualified">					
  5. Product.xsd için yaptığınız değişiklikleri kaydedin.
  6. Yapı ve XSD şeması tovalidate XML belgesini kullanmak için uygulamayı çalıştırın.
back to the top

Önbellek ad alanları

  1. Visual Studio .NET içinde Class1.cs açın. Bir XmlSchemaCollection nesne Main yönteminin başında aşağıdaki gibi oluşturun:
    XmlSchemaCollection cache = new XmlSchemaCollection();					
  2. XmlSchemaCollection nesne için bellekte önbellek şemaları için improvedperformance sağlar. Her şema farklı bir ad alanıyla ilişkilendirilir. Product.xsd önbellek için aşağıdaki kodu ekleyin:
    cache.Add("urn:MyNamespace", "C:\\MyFolder\\Product.xsd");					
  3. Böylece okuyucu bellek içi şemalar, şema önbelleği XmlValidatingReader için eklemek içinXmlValidatingReader nesnesi oluşturur kodundan sonra aşağıdaki ifadeyi ekleyin:
    v.Schemas.Add(cache);					
back to the top

Düzgün çalıştığını doğrulayın

  1. Yapı ve uygulamayı çalıştırın.
  2. XML belgesi hala theXSD şema karşı doğrulanır doğrulayın.
  3. Onu geçersiz kılmak için ProductWithXSD.xml değiştirin.
  4. Uygulama bu validationerrors algıladığını doğrulamak.
back to the top

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 307379 - Son İnceleme: 12/06/2015 05:25:30 - Düzeltme: 4.0

Microsoft Visual C# .NET 2003 Standard Edition, Microsoft Visual C# .NET 2002 Standard Edition, Microsoft .NET Framework 1.1, Microsoft .NET Framework 1.0

  • kbnosurvey kbarchive kbhowtomaster kbmt KB307379 KbMttr
Geri bildirim