Πώς να επικυρώσετε ένα έγγραφο XML χρησιμοποιώντας DTD, XDR ή XSD στο Visual C#.NET

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 307379 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

Αυτό το άρθρο παρουσιάζει τον τρόπο για να εφαρμόσετε έναν τύπο εγγράφου Ορισμός (DTD), ένα σχήμα Microsoft XML-Data Reduced (XDR) ή ένα σχήμα XML Ορισμός γλώσσας (XSD) σχήματος σε μια γλώσσα XML (Extensible Markup) το έγγραφο. Αυτό το άρθρο περιγράφει επίσης τον τρόπο χρήσης του XmlValidatingReader Κλάση για την επικύρωση ενός εγγράφου XML με καθορισμένη γραμματική, καθώς και τον τρόπο χρήσης του XmlSchemaCollection Κλάση cache σχήματα στη μνήμη για να βελτιστοποιήσετε XML επικύρωση.

Τα έγγραφα XML περιέχουν στοιχεία και χαρακτηριστικά. Τους παρέχουν μια ευέλικτη και ισχυρή τρόπο για την ανταλλαγή δεδομένων μεταξύ εφαρμογών και οργανισμοί. Για να ορίσετε το επιτρεπόμενο δομή και περιεχόμενο XML μια έγγραφο, μπορείτε να γράψετε ένα DTD, ένα σχήμα XDR ή ένα σχήμα XSD. Οι διατάξεις XSD η προτιμώμενη μέθοδος για να καθορίσετε XML grammars στη Microsoft.NET Framework, αλλά DTD και XDR υποστηρίζονται επίσης διατάξεις.

Απαιτήσεις

Αυτό το άρθρο υποθέτει ότι έχετε εξοικειωμένοι με τα ακόλουθα θέματα:
  • Microsoft Visual C#.NET ή Microsoft Visual Basic.NET σύνταξη
  • Έννοιες XML, συμπεριλαμβανομένων των ζητημάτων επικύρωσης

Δημιουργία ενός εγγράφου XML

  1. Ξεκινήστε το Visual Studio.NET.
  2. Δημιουργήστε ένα νέο αρχείο XML στον τοπικό υπολογιστή σας.
  3. Προσθέστε τα ακόλουθα δεδομένα του εγγράφου XML που αντιπροσωπεύουν ένα προϊόν σε έναν κατάλογο:
    <Product ProductID="123">
       <ProductName>Rugby jersey</ProductName>
    </Product>
    					
  4. Αποθηκεύστε το αρχείο ως Product.xml σε ένα νέο φάκελο με όνομα C:\MyFolder.

Χρησιμοποιώντας το DTD

Δημιουργήστε το DTD και σύνδεση με έγγραφο XML

  1. Στο Visual Studio.NET, δημιουργήστε ένα κενό κείμενο το αρχείο.
  2. Προσθέστε τις παρακάτω δηλώσεις DTD στο αρχείο για να περιγράψει γραμματική του εγγράφου XML:
    <!ELEMENT Product (ProductName)>
    <!ATTLIST Product ProductID CDATA #REQUIRED>
    <!ELEMENT ProductName (#PCDATA)>
    					
  3. Αποθηκεύστε το αρχείο ως Product.dtd με το C:\MyFolder κατάλογος.
  4. Άνοιγμα Product.xml στο Visual Studio.NET.
  5. Προσθέστε το ακόλουθο DOCTYPE δήλωση στην κορυφή της Product.xml για τη σύνδεση του εγγράφου XML το αρχείο DTD:
    <?xml version="1.0"?>
    <!DOCTYPE Product SYSTEM "Product.dtd">
    					
  6. Αποθηκεύστε το τροποποιημένο έγγραφο XML ως ProductWithDTD.xml.

Χρησιμοποιήστε το DTD για επικύρωση του εγγράφου XML

  1. Στο Visual Studio.NET, δημιουργήστε μια νέα Visual C# κονσόλα Το έργο εφαρμογής με το όνομα ValidateXml.
  2. Προσθέστε δύο χρήση δηλώσεις στην αρχή Class1.cs ως εξής:
    using System.Xml;        // for XmlTextReader and XmlValidatingReader
    using System.Xml.Schema; // for XmlSchemaCollection (which is used later)
    					
  3. Σε Class1.cs, να δηλώσετε μια μεταβλητή boolean isValid πριν από την έναρξη της Κύρια μέθοδος ως εξής:
    private static bool isValid = true;      // If a validation error occurs,
                                             // set this flag to false in the
                                             // validation event handler. 
  4. Δημιουργήστε ένα XmlTextReader αντικείμενο για να διαβάσετε ένα έγγραφο XML από ένα αρχείο κειμένου με το Κύρια μέθοδος, και στη συνέχεια δημιουργήστε ένα XmlValidatingReader Για να επικυρώσετε δεδομένα XML ως εξής:
    XmlTextReader r = new XmlTextReader("C:\\MyFolder\\ProductWithDTD.xml");
    XmlValidatingReader v = new XmlValidatingReader(r);
    					
  5. Το ValidationType ιδιότητα του XmlValidatingReader αντικείμενο υποδεικνύει τον τύπο επικύρωσης που είναι απαραίτητη)DTD, XDR, ή Σχήμα). Ορίστε αυτή την ιδιότητα DTD ως εξής:
    v.ValidationType = ValidationType.DTD;
    					
  6. Εάν παρουσιαστούν σφάλματα επικύρωσης, επικύρωση reader δημιουργεί ένα συμβάν επικύρωσης. Προσθέστε τον παρακάτω κώδικα για να καταχωρήσετε μια επικύρωση το πρόγραμμα χειρισμού συμβάντων (θα εφαρμόσει το MyValidationEventHandler μέθοδος στο βήμα 8):
    v.ValidationEventHandler += 
       new ValidationEventHandler(MyValidationEventHandler);
    					
  7. Προσθέστε τον παρακάτω κώδικα για να διαβάσετε και να επικυρώσετε το XML το έγγραφο. Εάν παρουσιαστούν σφάλματα επικύρωσης, MyValidationEventHandler ονομάζεται για την αντιμετώπιση του σφάλματος. Η μέθοδος αυτή θέτει isValid στην τιμή false (ανατρέξτε στο βήμα 8). Μπορείτε να ελέγξετε την κατάσταση της isValid μετά την επικύρωση για να δείτε εάν το έγγραφο είναι έγκυρη ή δεν είναι έγκυρη.
    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 μέθοδος μετά την Κύρια μέθοδος ως εξής:
    public static void MyValidationEventHandler(object sender, 
                                                ValidationEventArgs args) 
    {
       isValid = false;
       Console.WriteLine("Validation event\n" + args.Message);
    }
    					
  9. Δημιουργήστε και εκτελέστε την εφαρμογή. Η εφαρμογή θα πρέπει να έκθεση ότι το έγγραφο XML είναι έγκυρη.
  10. Στο Visual Studio.NET, ProductWithDTD.xml για να τροποποιήσετε Ακυρώνει την (για παράδειγμα, διαγράψτε το<productname>"Rugby ΤζέρσεΪ</productname>"στοιχείο).
  11. Εκτελέστε ξανά την εφαρμογή. Πρέπει να λάβετε το ακόλουθο μήνυμα λάθους:
    Επικύρωση συμβάντος
    Το στοιχείο 'Προϊόν' δεν έχει έγκυρο περιεχόμενο. Αναμένεται "Όνομα_προϊόντος".
    Παρουσιάστηκε σφάλμα κατά την File:///C:/MyFolder/ProductWithDTD.XML(4, 5).
    Το έγγραφο δεν είναι έγκυρη

Χρησιμοποιώντας το σχήμα XDR

Δημιουργία σχήματος XDR και σύνδεση σε έγγραφο XML

  1. Στο Visual Studio.NET, δημιουργήστε ένα κενό κείμενο το αρχείο.
  2. Προσθήκη οι ακόλουθοι ορισμοί σχήματος XDR στο αρχείο Περιγράψτε τη γραμματική του εγγράφου XML:
    <?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. Αποθηκεύστε το αρχείο ως Product.xdr με το C:\MyFolder κατάλογος.
  4. Ανοίξτε το αρχικό αρχείο Product.xml και σύνδεση με το XDR σχήμα ως εξής:
    <?xml version="1.0"?>
    <Product ProductID="123" xmlns="x-schema:Product.xdr"> 
       <ProductName>Rugby jersey</ProductName>
    </Product>
    					
  5. Αποθηκεύστε το τροποποιημένο έγγραφο XML ως ProductWithXDR.xml.

Χρησιμοποιήστε το σχήμα XDR για την επικύρωση του εγγράφου XML

  1. Τροποποιήστε την εφαρμογή σας ώστε να XmlTextReader φορτώνει ProductWithXDR.xml ως εξής:
    XmlTextReader r = new XmlTextReader("C:\\MyFolder\\ProductWithXDR.xml");
    					
  2. Ορισμός του ValidationType Για να XDR έτσι ώστε η επικύρωση reader εκτελεί επικύρωση XDR:
    v.ValidationType = ValidationType.XDR;
    					
  3. Δημιουργήστε και εκτελέστε την εφαρμογή. Η εφαρμογή θα πρέπει να έκθεση ότι το έγγραφο XML είναι έγκυρη.
  4. Τροποποίηση ProductWithXDR.xml να ακυρώσει την.
  5. Δημιουργήστε και εκτελέστε ξανά την εφαρμογή. Θα πρέπει να λάβετε μια Σφάλμα επικύρωσης.

Χρησιμοποιώντας το σχήμα XSD

Δημιουργία σχήματος XSD και σύνδεση σε έγγραφο XML

  1. Στο Visual Studio.NET, δημιουργήστε ένα κενό κείμενο το αρχείο.
  2. Προσθήκη οι ακόλουθοι ορισμοί σχήματος XSD στο αρχείο Περιγράψτε τη γραμματική του εγγράφου XML:
    <?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. Αποθηκεύστε το αρχείο ως Product.xsd με το C:\MyFolder κατάλογος.
  4. Ανοίξτε το αρχικό Product.xml και σύνδεση με το XSD σχήμα ως εξής:
    <?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. Αποθηκεύστε το τροποποιημένο έγγραφο XML ως ProductWithXSD.xml.

Χρησιμοποιήστε διάταξη XSD για την επικύρωση του εγγράφου XML

  1. Τροποποιήστε την εφαρμογή σας ώστε να XmlTextReader φορτώνει ProductWithXSD.xml ως εξής:
    XmlTextReader r = new XmlTextReader("C:\\MyFolder\\ProductWithXSD.xml");
    					
  2. Ορισμός του ValidationType Για να Σχήμα έτσι ώστε ο αναγνώστης επικύρωση εκτελεί επικύρωση σχήματος XSD:
    v.ValidationType = ValidationType.Schema;
    					
  3. Δημιουργία και εκτέλεση της εφαρμογής για να χρησιμοποιήσετε το σχήμα XSD σε η επικύρωση του εγγράφου XML.

Χρησιμοποιήστε χώρους ονομάτων στο σχήμα XSD

  1. Στο Visual Studio.ProductWithXSD.xml NET, άνοιγμα.
  2. Για να δηλώσετε ένα προεπιλεγμένο πεδίο ονόματος URN: MyNamespace στο έγγραφο. Επιπλέον, να τροποποιήσετε τη σύνδεση XSD έτσι ώστε να Καθορίζει το σχήμα XSD για να επικυρώσετε περιεχόμενο σε αυτόν το χώρο ονομάτων:
    <?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.
  4. Άνοιγμα Product.xsd. Τροποποιήστε την ετικέτα έναρξης <xsd:schema> ως εξής, έτσι ώστε η διάταξη ισχύει για το χώρο ονομάτων<b00></b00></xsd:schema>URN: MyNamespace:
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                targetNamespace="urn:MyNamespace"
                elementFormDefault="qualified">
    					
  5. Αποθηκεύστε τις αλλαγές σας σε Product.xsd.
  6. Δημιουργία και εκτέλεση της εφαρμογής για να χρησιμοποιήσετε το σχήμα XSD σε η επικύρωση του εγγράφου XML.

Οι χώροι προσωρινής αποθήκευσης ονομάτων

  1. Στο Visual Studio.Class1.cs NET, άνοιγμα. Δημιουργήστε ένα XmlSchemaCollection το αντικείμενο στην αρχή της Κύρια μέθοδος ως εξής:
    XmlSchemaCollection cache = new XmlSchemaCollection();
    					
  2. Το XmlSchemaCollection αντικείμενο σάς επιτρέπει να τα σχήματα στη μνήμη cache για βελτιωμένη απόδοση. Κάθε σχήμα έχει συσχετιστεί με ένα διαφορετικό χώρο ονομάτων. Προσθήκη του παρακάτω κώδικα στο cache Product.xsd:
    cache.Add("urn:MyNamespace", "C:\\MyFolder\\Product.xsd");
    					
  3. Προσθέστε την ακόλουθη δήλωση μετά τον κωδικό που δημιουργεί τοXmlValidatingReader η μνήμη cache σχήματος για να προσθέσετε το αντικείμενο XmlValidatingReader έτσι, ώστε ο αναγνώστης να χρησιμοποιήσετε τα σχήματα στη μνήμη:
    v.Schemas.Add(cache);
    					

Βεβαιωθείτε ότι λειτουργεί

  1. Δημιουργήστε και εκτελέστε την εφαρμογή.
  2. Βεβαιωθείτε ότι το έγγραφο XML ακόμη επικυρώνεται η Διάταξη XSD.
  3. Τροποποιήστε το ProductWithXSD.xml να ακυρώσει την.
  4. Επιβεβαίωση ότι η εφαρμογή εντοπίζει αυτά επικύρωσης σφάλματα.

Ιδιότητες

Αναγν. άρθρου: 307379 - Τελευταία αναθεώρηση: Κυριακή, 29 Μαΐου 2011 - Αναθεώρηση: 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
Λέξεις-κλειδιά: 
kbhowtomaster kbmt KB307379 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:307379

Αποστολή σχολίων

 

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