XML有哪些拓展

这期内容当中小编将会给大家带来有关XML有哪些拓展,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

为满城等地区用户提供了全套网页设计制作服务,及满城网站建设行业解决方案。主营业务为网站制作、成都网站设计、满城网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

以下是对XML基础的总结

初识

http://www.php.cn/

基础

http://www.php.cn/

下面是对XML的拓展包括 XML属性、验证

XML 元素可以在开始标签中包含属性,类似 HTML。

属性 (Attribute) 提供关于元素的额外信息。

XML 属性

从 HTML,你会回忆起这个:。"src" 属性提供有关 元素的额外信息。

在 HTML 中(以及在 XML 中),属性提供有关元素的额外信息:


属性通常提供不属于数据组成部分的信息。在下面的例子中,文件类型与数据无关,但是对需要处理这个元素的软件来说却很重要:

computer.gif

XML 属性必须加引号

属性值必须被引号包围,不过单引号和双引号均可使用。比如一个人的性别,person 标签可以这样写:

或者这样也可以:

注释:如果属性值本身包含双引号,那么有必要使用单引号包围它,就像这个例子:

或者可以使用实体引用:

XML 元素 vs. 属性

请看这些例子:


  Anna
  Smith
 


  female
  Anna
  Smith

在第一个例子中,sex 是一个属性。在第二个例子中,sex 则是一个子元素。两个例子均可提供相同的信息。

没有什么规矩可以告诉我们什么时候该使用属性,而什么时候该使用子元素。我的经验是在 HTML 中,属性用起来很便利,但是在 XML 中,您应该尽量避免使用属性。如果信息感觉起来很像数据,那么请使用子元素吧。

我最喜欢的方式

下面的三个 XML 文档包含完全相同的信息:

第一个例子中使用了 date 属性:


George
John
Reminder
Don't forget the meeting!

第二个例子中使用了 date 元素:


08/08/2008
George
John
Reminder
Don't forget the meeting!

第三个例子中使用了扩展的 date 元素(这是我的最爱):



  08
  08
  2008

George
John
Reminder
Don't forget the meeting!

避免 XML 属性?

因使用属性而引起的一些问题:

请尽量使用元素来描述数据。而仅仅使用属性来提供与数据无关的信息。

不要做这样的蠢事(这不是 XML 应该被使用的方式):


针对元数据的 XML 属性

有时候会向元素分配 ID 引用。这些 ID 索引可用于标识 XML 元素,它起作用的方式与 HTML 中 ID 属性是一样的。这个例子向我们演示了这种情况:


  
    George
    John
    Reminder
    Don't forget the meeting!
  
  
    John
    George
    Re: Reminder
    I will not
   

上面的 ID 仅仅是一个标识符,用于标识不同的便签。它并不是便签数据的组成部分。

在此我们极力向您传递的理念是:元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。

XML验证

拥有正确语法的 XML 被称为“形式良好”的 XML。

通过某个 DTD 进行了验证的 XML 是“合法”的 XML。

形式良好的 XML 文档

一个"形式良好"的 XML 文档拥有正确的语法。

一个"形式良好"的 XML 文档会遵守前几章介绍过的 XML 语法规则:



George
John
Reminder
Don't forget the meeting!

验证 XML 文档

一个合法的 XML 文档是"形式良好"的 XML 文档,同样遵守文档类型定义 (DTD) 的语法规则:


George
John
Reminder
Don't forget the meeting!

在上例中,DOCTYPE 声明是对外部 DTD 文件的引用。下面的段落展示了这个文件的内容。

XML DTD

DTD 的作用是定义 XML 文档的结构。它使用一系列合法的元素来定义文档结构:


  
  
  
  
]>

有关DTD的总结:

http://www.php.cn/

XML Schema




  
    
    
    
    
  


一个通用的验证器

XML 错误会终止您的程序

XML 文档中的错误会终止你的 XML 程序。

W3C 的 XML 规范声明:如果 XML 文档存在错误,那么程序就不应当继续处理这个文档。理由是,XML 软件应当轻巧,快速,具有良好的兼容性。

如果使用 HTML,创建包含大量错误的文档是有可能的(比如你忘记了结束标签)。其中一个主要的原因是 HTML 浏览器相当臃肿,兼容性也很差,并且它们有自己的方式来确定当发现错误时文档应该显示为什么样子。

使用 XML 时,这种情况不应当存在。

对您的 XML 进行语法检查 - 仅用于 IE 浏览器

为了帮助您对 XML 进行语法检查,我们创建了一个 XML 验证器。

把您的 XML 粘贴到下面的文本框中,然后点击"验证"按钮来进行语法检查。

根据 DTD 来验证 XML

只要把 DOCTYPE 声明添加到您的 XML 中,然后点击验证按钮即可:

注释:只有在 Internet Explorer 中,可以根据 DTD 来验证 XML。Firefox, Mozilla, Netscape 以及 Opera 做不到这一点。

如何将XML显示在Html上:

实例

在 HTML 中显示数据

在上一节中,我们讲解了如何通过 JavaScript 来解析 XML 并访问 DOM。

本例遍历一个 XML 文件 (cd_catalog.xml),然后把每个 CD 元素显示为一个 HTML 表格行:







例子解释:

  1. 检测浏览器,然后使用合适的解析器来加载 XML

  2. 创建一个 HTML 表格(

  3. 使用 getElementsByTagName() 来获得所有 XML 的 CD 节点

  4. 针对每个 CD 节点,把 ARTIST 和 TITLE 中的数据显示为表格数据

  5. 结束表格

XMLHttpRequest

什么是 XMLHttpRequest 对象?

XMLHttpRequest 对象是开发者的梦想,因为您能够:

所有现代的浏览器都支持 XMLHttpRequest 对象。

实例:当键入文本时与服务器进行 XML HTTP 通信。

创建 XMLHttpRequest 对象

通过一行简单的 JavaScript 代码,我们就可以创建 XMLHttpRequest 对象。

在所有现代浏览器中(包括 IE 7):

xmlhttp=new XMLHttpRequest()

在 Internet Explorer 5 和 6 中:

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")

实例

TIY

注释:onreadystatechange 是一个事件句柄。它的值 (state_Change) 是一个函数的名称,当 XMLHttpRequest 对象的状态发生改变时,会触发此函数。状态从 0 (uninitialized) 到 4 (complete) 进行变化。仅在状态为 4 时,我们才执行代码。

为什么使用 Async=true ?

我们的实例在 open() 的第三个参数中使用了 "true"。

该参数规定请求是否异步处理。

True 表示脚本会在 send() 方法之后继续执行,而不等待来自服务器的响应。

onreadystatechange 事件使代码复杂化了。但是这是在没有得到服务器响应的情况下,防止代码停止的最安全的方法。

通过把该参数设置为 "false",可以省去额外的 onreadystatechange 代码。如果在请求失败时是否执行其余的代码无关紧要,那么可以使用这个参数。

XML实例:

XML 文档实例

请看下面这个 XML 文档 ( "cd_catalog.xml" ),它描述了一个 CD 目录:



  
    Empire Burlesque
    Bob Dylan
    USA
    Columbia
    10.90
    1985
  
.
.
... more ...
.

加载 XML 文档

为了加载 XML 文档 (cd_catalog.xml),我们使用了与 XML 解析器那一节中相同的代码:

var xmlDoc;
if (window.ActiveXObject)
  {  // code for IE
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  }
else if (document.implementation.createDocument)
  {  // code for Firefox, Mozilla, Opera, etc.
  xmlDoc=document.implementation.createDocument("","",null);
  }
else
  {
  alert('Your browser cannot handle this script');
  }
xmlDoc.async=false;
xmlDoc.load("cd_catalog.xml");

在本代码执行后,xmlDoc 成为一个 XML DOM 对象,可由 JavaScript 访问。

把 XML 数据显示为 HTML 表格

以下代码使用来自 XML DOM 对象的数据来填充一个 HTML 表格:

document.write("");

var x=xmlDoc.getElementsByTagName("CD");
for (var i=0;i");
document.write("");

document.write("");
document.write("");
}
document.write("
"); document.write( x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue); document.write(""); document.write( x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue); document.write("
");

针对 XML 文档中的每个 CD 元素,会创建一个表格行。每个表格行包含两个表格数据单元,其中的数据来自当前 CD 元素的 ARTIST 和 TITLE。

在任意 HTML 元素中显示 XML 数据

XML 数据可以拷贝到任何有能力显示文本的 HTML 元素。

下面的代码为 HTML 文件的 部分。这段代码从第一个 元素中获得 XML 数据,然后在 id="show" 的 HTML 元素中显示数据:

var x=xmlDoc.getElementsByTagName("CD");
i=0;

function display()
{
artist=
(x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue);
title=
(x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue);
year=
(x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue);

txt="Artist: "+artist+"
Title: "+title+"
Year: "+year; document.getElementById("show").innerHTML=txt; }

HTML 的 body 元素包含一个 onload 事件属性,它的作用是在页面已经加载时调用 display() 函数。body 元素中还包含了供接受 XML 数据的

元素。

通过上例,你只能看到来自 XML 文档中第一个 CD 元素中的数据。为了导航到数据的下一行,必须添加更多的代码。

添加导航脚本

为了向上例添加导航(功能),需要创建 next() 和 previous() 两个函数:

function next()
{
if (i0)
  {
  i--;
  display();
  }
}

next() 函数确保已到达最后一个 CD 元素后不显示任何东西,previous () 函数确保已到达第一个 CD 元素后不显示任何东西。

通过点击 next/previous 按钮来调用 next() 和 previous() 函数:


上述就是小编为大家分享的XML有哪些拓展了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。


文章标题:XML有哪些拓展
文章位置:http://pwwzsj.com/article/jcoohd.html