Inhaltsverzeichnis
Entwicklungsgeschichte
XMLVergleich mit HTML Extensible
XML und HTML-Vergleichssyntaxdetails
XML-Validierungs-DTD
XMLNamespace
XMLSyntaxstruktur
DOM4JKonfigurationsdateien lesen und schreiben
Über SLT
Ein XML-Dokument kann viele Elemente und Attribute enthalten, wenn wir andere verwenden XML dokumentieren oder mehrere Validierungsdateien verwenden (DTD oder Schema ), ist es sehr wahrscheinlich, dass Der gleiche Element- oder Attributname wird angezeigt, aber die Bedeutung dieser Elemente oder Attribute ist unterschiedlich wie bei Java. Die spezifischen Funktionen dieser Klassen sind identisch sind unterschiedlich, daher haben die Leute im Bereich Java das Konzept eingeführt, dass Klassen mit demselben Namen in verschiedenen Paketen unterschiedliche Funktionen haben, wodurch Klassen mit demselben Namen effektiv unterschieden werden. Ebenso wird der Namespace in XML eingeführt, um das Problem doppelter Namen zu lösen. Schauen Sie sich zunächst das folgende Beispiel an
<?xml version="1.0" encoding="gb2312" ?> <books> <book> <title>JSP深入编程</title> <author> <name>张三</name> <title>作家</title> </author> </book> <book> <title>XML从入门到精通</title> <author> <name>李四</name> <title>教师</title> </author> </book> </books>
Dies ist ein gut formatiertes XML-Dokument über ein Buch, aber es gibt einen Konflikt in den Elementen, die das Element title darstellt Der Buchtitel und seine Verwendung Obwohl es sich um den Titel des Autors handelt, haben zwei Elemente mit demselben Namen unterschiedliche Bedeutungen. Dies führt dazu, dass der XML-Parser sehr verwirrend zu lesen ist und die XML-Validierung nicht korrekt durchführen kann. Um dieses Problem zu lösen, verwenden wir Namensräume, um identische Elemente zu unterscheiden. Zuvor stellen wir zunächst vor, wie der XML-Namespace definiert wird:
<元素名 xmlns:prefixname="URI">
元素名是指在该元素上声明命名空间,在这个元素上声明的名称空间适用于声明它的元素和属性,以及该元素内容中的所有元素及属性prefixname是名称空间的前缀,往往URI比较长所以可以用prefixname来代替URI比如下面的例子
<hr xmlns:hr="http://blog.csdn.net/beijiguangyong">
上面的句子声明了一个名称空间,它的名字是//m.sbmmt.com/。一般而言这个名称很长,于是就用了hr来表示,作为该名称空间下的元素或者属性可以其在前面加上前缀hr。例如
<?xml version="1.0" encoding="utf-8" ?> <books xmlns:people="http://blog.csdn.net/beijiguangyong"> <book> <title>JSP深入编程</title> <author> <name>张三</name> <title>作家</title> </author> </book> <book> <title>XML从入门到精通</title> <author> <people:name>李四</name> <people:title>教师</title> </author> </book> </books>
其中people是名称空间//m.sbmmt.com/的前缀,用于表示相应的元素是属于该命名空间下的。对于上面的XML而言解析器就很容易区分people:title和title的不同。
还有另一种定义名称空间的方式:
<元素名 xmlns="URI">
这种声明形式没有给出名称空间的前缀名,我们可以认为URI所标识的是一个默认的名称空间。例如
表明了一个默认的名称空间,除非元素中有其他的命名空间进行覆盖,否则hr元素及其内容中所有的没有前缀的元素都属于//m.sbmmt.com/所标识的名称空间
Nachdem Sie den Namespace verstanden haben, wird es einfacher zu erlernen sein, Schema zu verwenden, um die Richtigkeit von XML zu überprüfen .
Das Obige ist der Inhalt des XML Concise Tutorial (5). Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www. php.cn)!