Inhaltsverzeichnis
Entwicklungsgeschichte
XMLVergleich mit HTML Extensible
XML und HTML-Vergleichssyntaxdetails
XML-Validierungs-DTD
XMLNamespace
XMLSyntaxstruktur
Schema für XML-Validierung
DOM4JKonfigurationsdatei lesen und schreiben
Über SLT
Schema für XML-Validierung
Wie im vorherigen Artikel erwähnt Ja, durch Mit der DTD können wir leicht beurteilen, ob das zu überprüfende XML den von uns definierten Spezifikationen entspricht (die Beziehung zwischen Elementen, ob die Werte der Attribute korrekt sind). Wenn wir jedoch den Inhalt von Elementen überprüfen möchten, ist die DTD machtlos. Also studieren die Leute eine neue Verifizierungsmethode – Schema.
Zusätzlich zu den oben genannten Vorteilen ist Schema noch beeindruckender als DTD Das Spannende ist, dass es sich um ein wohlgeformtes XML-Dokument handelt, sodass das Schreiben eines Schemas sehr einfach ist. Im Vergleich zu , das über eine eigene unabhängige Syntax verfügt, ist DTD sehr schwierig zu schreiben und zu warten.
Eine Schemadatei ist eine XML-Datei, daher entspricht das geschriebene XML dem SchemaDer Prozess besteht darin, XML gegen XML zu schreiben. In diesem Fall ist es sehr einfach, Schema zu schreiben. Im Folgenden wird gezeigt, wie das entsprechende Schema gemäß XML geschrieben wird
Original-XML-Datei (test2.xml)
Für das obigeXML unten beginnen wir mit der Erstellung eines
Schemas<?xml version="1.0"encoding="ISO-8859-1"?> <shiporder orderid="889923" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="shiporder.xsd"> <orderperson>George Bush</orderperson> <shipto> <name>John Adams</name> <address>Oxford Street</address> <city>London</city> <country>UK</country> </shipto> <item> <title>Empire Burlesque</title> <note>Special Edition</note> <quantity>1</quantity> <price>10.90</price> </item> <item> <title>Hide your heart</title> <quantity>1</quantity> <price>9.90</price> </item> </shiporder>
. Das zu befolgende Prinzip besteht darin, das ursprüngliche
XML
zu schreiben und dann das entsprechende
zu beschreiben, so als ob Sie einem gegenüber stünden Person. Die Beschreibung ist dieselbe. Der Schemacode lautet wie folgt (shiporder.xsd)
Codeanalyse:
Die erste Zeile ist alles XML
Die Aussage bedarf keiner weiteren Erläuterung.<?xml version="1.0"encoding="ISO-8859-1" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="shiporder"> <xs:complexType> <xs:sequence> <xs:element name="orderperson"type="xs:string"/> <xs:element name="shipto"> <xs:complexType> <xs:sequence> <xs:elementname="name" type="xs:string"/> <xs:elementname="address" type="xs:string"/> <xs:elementname="city" type="xs:string"/> <xs:elementname="country" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="item"maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:elementname="title" type="xs:string"/> <xs:elementname="note" type="xs:string" minOccurs="0"/> <xs:elementname="quantity" type="xs:positiveInteger"/> <xs:element name="price"type="xs:decimal"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="orderid"type="xs:string" use="required"/> </xs:complexType> </xs:element> </xs:schema>
XML (
Schemaselbst ist ein XML) definiert einen Namensraum.
Ab der vierten Zeile sind einige Anforderungen für das ursprüngliche XML: 首先定义了根元素为shiporder(行4),其次因为shiporder元素有一个属性,其中包含其他的元素所以其为复合类型(行5)。然后通过sequence元素按照顺序包围其子元素(行10---行15),描述元素的名称以及元素的类型(行11----行14),如果需要描述元素的限制条件(行22)。描述根元素的属性,由于是必选属性所以选择required关键字,需要注意的是这个属性必须放在最后(行29) 通过Schema验证XML的代码和前面文章中的DTD验证大同小异,代码如下:
如果原XML文件符合Schema文件中的描述则返回true;否则抛出异常进行描述哪里不符合,并且返回false。(具体的操作可在实际工程中自行定制,这里只是进行简单的描述)
以上就是XML简明教程(7) 的内容,更多相关内容请关注PHP中文网(www.php.cn)!package ValidateXml;
import java.io.File;
import java.io.IOException;
import javax.xml.XMLConstants;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;
importcom.sun.org.apache.xml.internal.utils.DefaultErrorHandler;
public class XmlValidator
{
private String xsdFilePath;
public XmlValidator(String xsdFilePath)
{
this.xsdFilePath =xsdFilePath;
}
public String validata(String xmlFilePath,ErrorHandler errorHandler)
{
String msg = null;
SchemaFactoryfactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
try
{
Schema schema = factory.newSchema(new File(xsdFilePath));
Validator validator = schema.newValidator();
validator.setErrorHandler(errorHandler);
validator.validate(new StreamSource(new File(xmlFilePath)));
}
catch (SAXExceptione)
{
msg = e.getMessage();
e.printStackTrace();
}
catch (IOExceptione)
{
msg = e.getMessage();
e.printStackTrace();
}
return msg;
}
public static void main(String[] args)
{
String xmlFilePath ="d://test2.xml";
String xsdFilePath ="d://shiporder.xsd";
XmlValidator my =new XmlValidator(xsdFilePath);
String msg =my.validata(xmlFilePath, new DefaultErrorHandler());
System.out.println(msg == null);
}
}

Die Hauptunterschiede zwischen JSON, XML und RSS sind Struktur und Verwendungszwecke: 1. JSON ist für einen einfachen Datenaustausch geeignet, mit einer kurzen Struktur und leicht zu analysieren. 2. XML ist für komplexe Datenstrukturen mit einer strengen Struktur, aber komplexer Analyse geeignet. 3..

Die Verarbeitung von XML/RSS -Feeds beinhaltet Parsen und Optimierung, und häufige Probleme umfassen Formatfehler, Codierungsprobleme und fehlende Elemente. Zu den Lösungen gehören: 1. Verwenden Sie XML -Verifizierungstools, um nach Formatfehlern zu überprüfen; 2. Gewährleistung der Codierungskonsistenz und verwenden Sie die Chardet -Bibliothek, um Codierung zu erkennen. 3. Verwenden Sie Standardwerte oder überspringen Sie das Element, wenn sie fehlende Elemente haben. 4. Verwenden Sie effiziente Parser wie LXML- und Cache -Parsing -Ergebnisse, um die Leistung zu optimieren. 5. Achten Sie auf Datenkonsistenz und Sicherheit, um XML -Injektionsangriffe zu verhindern.

Zu den Schritten zum Analyse von RSS -Dokumenten gehören: 1. Lesen Sie die XML -Datei, 2. verwenden DOM oder SAX, um XML zu analysieren, 3. Extrahieren von Überschriften, Links und anderen Informationen und 4. Prozessdaten. RSS-Dokumente sind XML-basierte Formate, die zur Veröffentlichung aktualisierter Inhalte, Strukturen und Elemente verwendet werden, die zum Erstellen von RSS-Lesern oder Datenverarbeitungstools geeignet sind.

RSS und XML sind die Kerntechnologien für die Verteilung von Netzwerkinhalten und den Datenaustausch. RSS wird verwendet, um häufig aktualisierte Inhalte zu veröffentlichen, und XML wird verwendet, um Daten zu speichern und zu übertragen. Entwicklungseffizienz und Leistung können durch Nutzungsbeispiele und Best Practices in realen Projekten verbessert werden.

Die Rolle von XML bei RSSFeed besteht darin, Daten zu strukturieren, zu standardisieren und Skalierbarkeit zu bieten. 1.xml macht RSSFeed -Daten strukturiert, was es einfach macht, analysieren und zu verarbeiten. 2.xml bietet eine standardisierte Möglichkeit, das Format von RSSFeed zu definieren. 3.xml Skalierbarkeit ermöglicht es RSSFeed, nach Bedarf neue Tags und Attribute hinzuzufügen.

Bei der Verarbeitung von XML- und RSS -Daten können Sie die Leistung in den folgenden Schritten optimieren: 1) Effiziente Parser wie LXML verwenden, um die Parsengeschwindigkeit zu verbessern; 2) SAX -Parsers verwenden, um den Speicherverbrauch zu reduzieren. 3) Verwenden Sie XPath -Ausdrücke, um die Effizienz der Datenextraktion zu verbessern. 4) Implementieren Sie die parallele Verarbeitung von Multi-Process, um die Verarbeitungsgeschwindigkeit zu verbessern.

RSS2.0 ist ein offener Standard, mit dem Content -Publisher Inhalte strukturiert verteilen kann. Es enthält reichhaltige Metadaten wie Titel, Links, Beschreibungen, Veröffentlichungsdaten usw., mit denen Abonnenten schnell durchsuchen und auf Inhalte zugreifen können. Die Vorteile von RSS2.0 sind seine Einfachheit und Skalierbarkeit. Beispielsweise ermöglicht es benutzerdefinierte Elemente, dh Entwickler können zusätzliche Informationen basierend auf ihren Anforderungen hinzufügen, z. B. Autoren, Kategorien usw.

RSS ist ein XML-basiertes Format, das zur Veröffentlichung häufig aktualisierter Inhalte verwendet wird. 1. RSSFEED organisiert Informationen über die XML -Struktur, einschließlich Titel, Link, Beschreibung usw. 2. Das Erstellen von RSSFeed erfordert das Schreiben in der XML -Struktur und addiert Metadaten wie Sprache und Veröffentlichungsdatum. 3. Die erweiterte Verwendung kann Multimedia -Dateien und klassifizierte Informationen enthalten. 4. Verwenden Sie beim Debuggen XML -Überprüfungswerkzeuge, um sicherzustellen, dass die erforderlichen Elemente existieren und korrekt codiert werden. 5. Optimierung von RSSFeed kann durch Pagen, Zwischenspeichern und Einfachen der Struktur erreicht werden. Durch das Verständnis und Anwenden dieses Wissens können Inhalte effektiv verwaltet und verteilt werden.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Dreamweaver Mac
Visuelle Webentwicklungstools
