목차
개발 내역
XML비교 HTML 확장 가능
XML 및 HTML 비교 구문 세부 정보
XML 유효성 검사 DTD
XML네임스페이스
XML구문 구조
DOM4J구성 파일 읽기 및 쓰기
SLT 정보
XML 문서는 다른 문서를 사용할 때 많은 요소와 속성을 포함할 수 있습니다 XML 문서를 작성하거나 여러 유효성 검사 파일(DTD 또는 스키마)을 사용하는 경우 동일한 요소 또는 속성 이름이 표시되지만 이러한 요소 또는 속성의 의미는 java와 유사하며 이러한 클래스의 특정 기능은 동일합니다. 그래서 Java 분야에서 사람들은 패키지라는 개념을 도입했습니다. 서로 다른 패키지 아래에 있는 동일한 이름의 클래스는 서로 다른 기능을 가지므로 동일한 이름을 가진 클래스를 효과적으로 구분할 수 있습니다. 마찬가지로 XML에는 중복 이름 문제를 해결하기 위해 네임스페이스가 도입되었습니다. 먼저 다음 예를 보세요
<?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>
이것은 책에 대한 올바른 형식의 XML 문서이지만 요소에 충돌이 있습니다. title 요소는 두 가지를 모두 나타냅니다. 책 제목과 책 제목, 이름은 같지만 의미가 다른 두 요소. 이로 인해 XML 파서는 읽기가 매우 혼란스럽고 XML 유효성 검사를 올바르게 수행할 수 없습니다. 이 문제를 해결하기 위해 네임스페이스를 사용하여 동일한 요소를 구별합니다. 그 전에 먼저 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/所标识的名称空间
네임스페이스를 이해한 후에는 스키마를 사용하여 XML의 정확성을 확인하는 방법을 배우는 것이 더 쉬울 것입니다. .
위 내용은 XML Concise Tutorial(5)의 내용이며, 보다 자세한 내용은 PHP 중국어 홈페이지(www. php.cn)!