Maison >développement back-end >Tutoriel XML/RSS >Tutoriel XML concis (5)
Table des matières
Historique du développement
XMLComparaison avec HTML Extensible
XML et détails de la syntaxe de comparaison HTML
DTD de validation XML
XMLEspace de noms
XMLStructure syntaxique
DOM4JLire et écrire les fichiers de configuration
À propos de SLT
Un document XML peut contenir de nombreux éléments et attributs, lorsqu'on en utilise d'autres XML ou utiliser plusieurs fichiers de validation (DTD ou Schéma ), il est très probable que le même nom d'élément ou d'attribut apparaîtra, mais la signification de ces éléments ou attributs est différente. Semblable à java, de nombreuses classes ont le même nom de classe. sont différents, donc dans le domaine de Java les gens ont introduit le concept de packages. Les classes portant le même nom sous différents packages ont des fonctions différentes, distinguant ainsi efficacement les classes portant le même nom. De même, l'espace de noms est introduit en XML pour résoudre le problème des noms en double. Regardez d'abord l'exemple suivant
<?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>
Il s'agit d'un document XML bien formaté concernant un livre, mais il y a un conflit dans les éléments que l'élément titre représente. le titre du livre et ses utilisations Bien qu'il représente le titre de l'auteur, deux éléments portant le même nom ont des significations différentes. Cela rend l'analyseur XML très déroutant à lire et incapable d'effectuer correctement la validation XML. Pour résoudre ce problème, nous utilisons des espaces de noms pour distinguer les éléments identiques. Avant cela, nous présentons d'abord comment définir l'espace de noms XML :
62884d5f16769342b9f45bdb3fe0929d
元素名是指在该元素上声明命名空间,在这个元素上声明的名称空间适用于声明它的元素和属性,以及该元素内容中的所有元素及属性prefixname是名称空间的前缀,往往URI比较长所以可以用prefixname来代替URI比如下面的例子
<hr xmlns:hr="http://blog.csdn.net/beijiguangyong">
上面的句子声明了一个名称空间,它的名字是http://www.php.cn/。一般而言这个名称很长,于是就用了hr来表示,作为该名称空间下的元素或者属性可以其在前面加上前缀hr。例如3054b7184ac02298ea7ae5766c4f2c08就表示employee元素属于此命名空间下。所以上面的那个拥有title重复属性的xml为了区分歧义可以写成下面这样
<?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是名称空间http://www.php.cn/的前缀,用于表示相应的元素是属于该命名空间下的。对于上面的XML而言解析器就很容易区分people:title和title的不同。
还有另一种定义名称空间的方式:
8ebf97d094d4f7e3cf0c3251d9bf2973
这种声明形式没有给出名称空间的前缀名,我们可以认为URI所标识的是一个默认的名称空间。例如5f9e0a8344348d6297757aae2a36262b表明了一个默认的名称空间,除非元素中有其他的命名空间进行覆盖,否则hr元素及其内容中所有的没有前缀的元素都属于http://www.php.cn/所标识的名称空间
Après avoir compris l'espace de noms, il sera plus facile d'apprendre à utiliser le Schéma pour vérifier l'exactitude du XML .
Ce qui précède est le contenu du didacticiel XML Concise (5). Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www. php.cn) !