Archive for the 'XML' Category

xml数据岛在IE和Firefox中的实现

10月 23rd, 2007 by Genthelvite

Internet Explorer 有一个非标准特性称为 XML 数据岛,它允许使用非标准 HTML 标签 <xml> 在 HTML 文档中嵌入 XML。Mozilla 不支持 XML 数据岛,将其作为未知的 HTML 标签处理。可以用 XHTML 来实现同样的功能,但是由于 Internet Explorer 对 XHTML 的支持很弱,这通常不是一个好办法。

一种跨浏览器的解决方法是使用 DOM 解析器,它解析包含序列化 XML 文档的字符串并为解析后的 XML 生成文档。Mozilla 使用 DOMParser 类,它接受序列化字符串并用它创建 XML 文档。在 Internet Explorer 可用 ActiveX 实现同样的功能。新增的 Microsoft.XMLDOM 生成 XML 文档,并且有一个 loadXML 方法可以接收字符串。比如下面的代码:

   IE   XML   data   island:  
..  
<xml   id="xmldataisland" >  
  <foo >bar </foo >  
</xml >  

<SCRIPT language="JavaScript">   //Cross-browser solution: var xmlString = " <xml id=\"xmldataisland\" > <foo >bar </foo > </xml >";  var myDocument;    if (document.implementation.createDocument){   // Mozilla, create a new DOMParser   var parser = new DOMParser();   myDocument = parser.parseFromString(xmlString, "text/xml");  } else if (window.ActiveXObject){   // Internet Explorer, create a new XML document using ActiveX   // and use loadXML as a DOM parser.   myDocument = new ActiveXObject("Microsoft.XMLDOM")   myDocument.async="false";   myDocument.loadXML(xmlString);   document.write(myDocument.selectSingleNode("xml/foo").text);  }  </SCRIPT>
var xmlString = "  <xml id=\"xmldataisland\"  >  <foo  >bar  </foo  >  </xml  >"; Javascript中引号表示字符串的头和尾如果字符串中包含有如:双引号、反斜杠、换行符、回车符等字符时就要用到转义


下面列出了需要转义的特殊 JavaScript 字符:
  • ' :\'
  • " :\"
  • \ :\\
  • 走纸换页: \f
  • 换行:\n
  • 换栏符:\t
  • 回车:\r
  • 回退符:\b

xml的换行

09月 24th, 2007 by Genthelvite

test.xml

<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>

<Topic>
<Issue>
<newsName>限车政策 ,“私心”乎?</newsName>
<date>2007.9.23 </date>
<laiyuan>花视网</laiyuan>
<zuozhe>淼之</zuozhe>
<img>2007920162958.jpg</img>
<news>

9月16日至22日,包括北京、上海、天津在内的108个城市将同时启动由建设部发起的全国首个“中国城市公共&lt;br/&gt;

交通周及无车日”活动。为了解决日益加剧的大城市的交通供需矛盾,建设部城建司副司长王凤武表示,应提高普&lt;br/&gt;

通市民使用家庭轿车的代价,如上海一般必须花钱买牌照,减少停车场地但提高收费标准等。中国城市规划设计研&lt;br/&gt;

究院城市交通研究所副所长赵杰也表示,应该控制私人汽车发展。&lt;br/&gt;

面对城市交通供需矛盾日益突出的难题以及私家车迅猛发展的态势,某些官员或专家学者在研究应对之策时,总免&lt;br/&gt;

不了要拿私家车说事,美其名曰“缓解城市交通拥堵”“减少污染”“降低能耗”,于是乎,提高油价、提高停车&lt;br/&gt;

费、提高上牌照费、收取交通拥堵费等各种手段都被用上了——公共管理者的“智慧”在这方面表现得可谓淋漓尽&lt;br/&gt;

致。&lt;br/&gt;

毫无疑问,私家车数量的激增是导致城市交通和环境压力的一个方面。但是我们更应该注意到,与私家车相比&lt;br/&gt;

,缺乏规范管理且数量庞大的公务车对交通和环境的影响同样不可忽视,在某种程度上甚至可以说影响更大。因为&lt;br/&gt;

,一些公务车在无耗油之忧与公车私用现象突出的情况下,上路的概率更大、行驶路程更长。如此看来,限制私家&lt;br/&gt;

车发展不如减少公车数量,其功效不仅能起到限制私家车的所有效果,而且还能够减少公共财政支出,以腾出更多&lt;br/&gt;

的资金来发展公共交通。&lt;br/&gt;

在公车与私家车的管理上,为什么公共管理者总是喜欢拿私家车开刀呢?显然不是管理者没有注意到公车对交&lt;br/&gt;

通和环境的压力,也不是不敢限制与管理,而是因为公共管理者在做出公共管理决策之时心存私心,不想去限制和&lt;br/&gt;

管理罢了。譬如,要是哪个公共交通管理部门提出限制公车,那么这个部门的公务车数量就会减少,导致提出建议&lt;br/&gt;

、作出决策的这些人也难享受到公车之“乐”了!在公车之“乐”还在为绝大多数公共管理者享受之时,谁会愿意&lt;br/&gt;

首先革自己的“命”呢?&lt;br/&gt;

化解交通难题和环境之忧,要求公共管理者运用一定的管理智慧来大力发展公共交通,更要求公共管理者必须&lt;br/&gt;

具备良好的公共管理道德。严格自律、出于公心无疑是公共管理道德的重要规范。这一规范告诉我们,公共管理者&lt;br/&gt;

在涉及自我利益时,要摒弃私心,一视同仁,不能让权利的天平向自我倾斜。在崇高的公共管理道德面前,我们的&lt;br/&gt;

相关公共管理部门是不是该反思自己在对待公车与私家车的管理上是否存在私心呢?&lt;br/&gt;

</news>
</Issue>
</Topic>

 

test.xsl

<?xml version="1.0" encoding="gb2312" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<table border="1">
<tr align="center"><td><xsl:value-of select="Topic/Issue/newsName"/></td></tr>

<tr align="center">
<td>
<table>
<tr>
<td></td>
<td>发布日期:<xsl:value-of select="Topic/Issue/date"/></td>
<td></td>
<td>来源:<xsl:value-of select="Topic/Issue/laiyuan"/></td>
<td></td>
<td>作者:<xsl:value-of select="Topic/Issue/zuozhe"/></td>
</tr>
</table>
</td>
</tr>

<tr><td>

<xsl:value-of select="Topic/Issue/news" disable-output-escaping="yes"/>

</td></tr>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

Firefox中如何实现此效果?

Green cogitation

09月 3rd, 2007 by Genthelvite

看腻了自带Blog的cogitation蓝色样式,自定义了下色彩,还行。

Clean Green.png

css如下:

/* COLOURlovers.com – Clean Green */

.color-FFFFF3
{
 background-color: #FFFFF3;
}

.color-9C9C0D
{
 background-color: #9C9C0D;
}

.color-FFFFFF
{
 background-color: #FFFFFF;
}

.color-838311
{
 background-color: #838311;
}

.color-CECE31
{
 background-color: #CECE31;
}

 

Make XML data islands work in Mozilla

01月 5th, 2006 by Genthelvite

Recently, I wrote an article on the virtues of XML data islands and, although the article was well received, a number of readers pointed out
that XML data islands work only with Microsoft Internet Explorer.
Because of this platform limitation and possibly because data islands
were developed by Microsoft, XML data islands are doomed to remain on
the nonstandard tool pile for now. Thankfully, this exile should last
only until another browser can handle XML data islands. So, armed with
a copy of Mozilla, a good knowledge of JavaScript, and a real loose
grip on reality, I decided to take matters into my own hands and
provide a way for Mozilla to process XML data islands.

Because
of time constraints, I decided to limit the scope to the following
features of data islands, which cover about 95 percent of the current
uses:

  • ·        Binding non-tabular HTML INPUT tags to XML nodes
  • ·        Binding non-tabular HTML DIV tags to XML nodes
  • ·        Binding non-tabular HTML SPAN tags to XML nodes
  • ·        Binding HTML TABLE tags to XML data islands
  • ·        Binding tabular HTML INPUT tags to XML nodes
  • ·        Binding tabular HTML DIV tags to XML nodes
  • ·        Binding tabular HTML SPAN tags to XML nodes


To
sum it up: Change the value of an HTML INPUT object, and the
corresponding XML node’s value changes. Although, at first glance,
giving Mozilla XML data island support seems like wizardry, it is
accomplished through the use of cascading style sheets (CSS),
JavaScript, and the HTML Document Object Model Level 1.

Getting started
Because
Mozilla does not have integral XML data island support, when presented
with XML, it will do its best to render the text. So, unless measures
are taken, a data island like the ones shown in Listing A will be displayed as shown in Figure A. This is where CSS comes into play. You can implement CSS to hide the data island’s XML ( Listing B). The rest of the process is handled through a combination of JavaScript and DOM.



Figure A




Even though Mozilla does not provide a specific way to handle XML,
it does provide a way to address parts of an HTML document and thus to
access the data island: via the DOM. For example, coding
document.getElementsByTagName(‘xml’) results in a collection consisting
of all XML nodes and descendents. Node attributes, like id, can be
retrieved as with
document.getElementsByTagName(‘xml’).item(0).getAttribute(‘id’). This
method can also be used to access the bound HTML nodes. This ability to
access nodes and attributes is key in finding both the data islands and
the associated HTML nodes.

JavaScript is used to control flow
and to create objects used in the binding of the XML nodes and HTML
nodes. Controlling the flow is preventing Internet Explorer from
executing this code, looping through the DOM, and setting an onchange
event handler for all of the bound HTML INPUT elements.

The first of these JavaScript objects is the collection
object, which is used three times. First, it stores XML data islands
using their name prefixed with (datasrc). The second use of the
collection object is to store the bound HTML nodes. An instance of the
JavaScript object shown in Listing C
is stored in the collection. The third use is to ensure that instances
of each datafld are unique, which enables the counting of table rows.


The object shown in Listing C provides a way to access bound nodes
and to differentiate between tabular and non-tabular nodes. For
example, non-tabular entries for HTML DIV tags will have both a datasrc
and a datafld, while tabular entries for HTML DIV tags have an entry
only for datafld. In the case of the latter, the table specifies the
datasrc. The node is used to ensure that the correct node is being
processed, and the nodeName is used to distinguish the various types of
nodes.

Processing an XML data island in Mozilla starts with
finding the individual XML tags and storing them in a collection. Next,
the bound table tags (those with a datasrc attribute) and their bound
child nodes are processed. Finally, the stand-alone bound INPUT, DIV,
and SPAN tags are handled.

Because HTML INPUT tags permit the
modification of their associated values, they require the addition of
an onchange event handler to update the corresponding XML node and
redisplay any HTML nodes that may be bound to it. To avoid making this
more complex than necessary, the redisplay is handled by simply
rebinding the XML data island and the various HTML tags. The resulting
code is the JavaScript function shown in Listing D in this downloadable code snippet.

Care and feeding of Mozilla XML data Islands
To
invoke the MozillaDSO() function, you just need to add an onload event
handler to the page’s body tag, as shown in the complete example,
Listing E (also in the downloadable code snippet). Once this has been
accomplished, it really doesn’t matter whether the client’s browser is
Internet Explorer or Mozilla. There is, however, one limitation to
Mozilla data islands: Tags cannot close themselves. So, although
<color></color> works, <color /> won’t. Mozilla will
insert a closing tag, usually where it will cause the most harm. In
addition, you should ensure that the individual HTML node’s onchange event handlers aren’t overlaid with your own.

魔兽世界用户界面自定义指南

06月 29th, 2005 by Genthelvite

《魔兽世界》的用户界面是使用XML文件定义界面的外表和布局的,而Lua文件则包含了脚本功能。这篇文档简短地介绍了如何修改这些文件来自定义你的界面。自定义界面需要一定的相应技术知识支持,所以请在你熟练掌握XML和Lua后再尝试修改用户界面。

 

现在我们并不提供对《魔兽世界》用户界面修改的官方支持。如果你准备对用户界面进行修改的话,希望你勤做备份。:)

 

要修改你的用户界面,请在魔兽世界文件夹中创建一个名字为“Interface”的目录,然后将所有的的界面数据和图案文件拷贝到这个文件夹中。这个文件夹中将包含所有你所安装的用户界面。如果你想删除自定义界面的话,你只需要删除Interface目录就可以了。但是绝对不要删除Data目录下的Interface目录,只要删除魔兽世界安装文件夹根目录下的Interface文件夹,这个文件夹应该是在你第一次创建自定义界面的时候就出现的。

 

如果你在使用自定义用户界面的时候碰到错误,那在你报告错误之前请将你的自定义用户界面的文件夹删除然后再试一下。之所以要求这么做是为了确定这个错误在没有修改的游戏中是否依然存在。如果是的话,那你就需要向我们报告这个情况了。

 

如果你在使用自定义用户界面时出现了错误,请先删除游戏根目录下的Interface目录再报告问题。这是因为如果在删除Interface目录之后就不再出现问题,那么你的游戏版本本身是没有错误的。如果此时错误仍然出现,那么你可以向我们报告。

 

XML
布局

 

关于游戏用户界面布局的文件可以在Interface\FrameXML文件夹中找到。

“FrameXML.toc”是个列表,其列出了所有当你进入游戏的时候所需要载入的XML文件。所列的文件是按照顺序载入的。所有在载入中出现的错误都将被记录在根目录下的“FrameXML.log”中。

 

每个XML文件基本上都描述了屏幕上的一个UI元素。如果你想了解其语法的话,你可以看一下原有的文件。XML文件严格按照XML1.0编制。如果你能找到一个XML语法的检查器,你可以查看在UI.xsd文件,并从其中找到所有魔兽世界用户界面所使用到的XML语法。

 

Lua
脚本

 

所有的界面功能实现都是通过Lua脚本来完成的。

Lua
5.0在线手册可以通过以下网址查看:

http://www.lua.org/manual/5.0/

 

如果你想要了解Lua是如何编辑脚本来定义界面的话,最好的方法就是查看那些XML文件中的脚本,那些脚本前都会标注<script>的标签,另外就是查看Lua的文件。Lua文件中的功能一般都是被相应的XML文件所使用的。

 

开始学习

 

最适合开始学习自定义界面所进行研究的文件
是“BasicControls.xml”。

 

在这个文件的顶部都包含了一个“_ERRORMESSAGE()”功能,
当你在使用自定义脚本发生错误的时候,会弹出一个错误信息窗口。另外还内置了一个“message()”功能,当自定义界面功能发生冲突的时候也会有相应的信息窗口跳出。

 

另外在这些文件中,一些材质细节也是由XML定义的。它们有“虚拟的”属性,这意味着它们实际上并没有被创造出来,而只是进行了定义而留在以后进行属性遗传。在一个框架或者窗口小部件,也就是“DialogBoxFrame”被定义之后,这个框架也是虚拟的。其包含了一个指针来定义其和父类,也就是一个背景和子类按键按下去之后隐藏对话框之间的关系。

 

每个框架都包含了许多的层,每个层都包含了一些材质和字体串。每个材质和字体串必须有相应的指针并且恰当设置大小来使其可见。指针补偿和尺寸大小限制在1024×768像素大小。

 

在文件的最底部我们将会定义一个实际的框架,叫做“ScriptErrors”。这个框架是用于继承我们之前定义的对话框,并显示文件顶部的信息。

 

它是怎么工作的?

 

当框架、材质或字符串在XML中定义之后,它的初始属性被定义并且被作为一个适当的类型物体加入到Lua的名称空格之中。每个种类的物体都有其成员功能来修改其物体属性。这就是我们如何能够从脚本中显示错误对话框的方式。

 

每个框架都有一系列的脚本处理器,这些处理器会在特定状况下启动。比如说,UIParent就有OnLoad状态,这个状态会在边框加载的时候启动;OnEvent,这个我们稍候再谈;OnUpdate,这个当每次游戏升级的时候会启动;OnShow,每次当边框显示的时候就会启动。

 

OnEvent处理器很特殊。这个处理器让游戏和界面可以沟通。魔兽世界游戏本身和界面的关系并不密切。每当有动作发生的时候,这个动作会相应的激活而不是直接指向界面。每个动作的框架注册器的对应关系,以及动作的发生时间,OnEvendt处理器都会将其反映给该框架。

 

如果界面不能把动作返回给游戏的话,那自定义界面能够对动作有相应的反应也没有用了。这个游戏提供了很多功能来改变其中的信息和游戏数据。在提供的Lua文件中附带了如何修改这些功能的例子。

 

插件

 

最新版本的魔兽世界增加了一个add-on的功能,利用这个功能你可以增加用户界面而不需要修改已经存在的界面文件。

 

这个功能特色一个不错的介绍:

http://wow.mmhell.com/articles/interface_modification/beginners_guide.html

 

使用技巧

 

魔兽世界支持动态重新载入用户界面。任何时候你都可以修改XML和Lua文件然后输入"/script
ReloadUI()"(没有引号),然后按回车来重新载入。如果在载入过程中遇到语法错误的话,你可以编辑,修改并重新载入。

 

如果你不确定脚本中描述的是什么,使用“message()”共能来打印出信息然后从中了解。一旦对话框出现,你的脚本会一直让其显示,除非你点击按钮关闭这个对话框,否则“message()”命令不会显示任何东西。

 

你可以随意进行修改。如果你不小心改错了什么东西,你可以轻松地重新开始。如果你有什么问题,你可以查看一下我们的界面自定义论坛
http://www.worldofwarcraft.com,你可以从中看看你的问题是否已经有别人遇到过,或者你也可以在其中提出你的问题。

 

总结

 

通过修改界面文件,你可以感受到乐趣,虽然这种行为并没有任何的技术支持。我们所希望的是,魔兽世界在用户界面方面可以为大家提供一个健全的并且灵活的系统。

以Web标准设计您的网页

04月 23rd, 2005 by Genthelvite

“there’s no reason to continue to use document.all“虽然正确无误,仍在坚持用document.all的情形在内地网站仍然不是少数。虽然在改善中,但还是不够快,这是推荐给网页设计者的文章。

http://noellab.net/ernest/tavi/index.php?page=BC_MozillaWebStandards

BobChao做的繁体化,对网页标准熟悉的DX可以继续编辑。



原文:

http://www.mozilla.org/docs/web-developer/upgrade_2.html

颜色名称参数对应色彩数值

04月 21st, 2005 by Genthelvite

颜色名称 参数值 对应RGB数值 颜色名称 参数值 对应RGB数值
红色 Red #FF0000 绿色 Lime #00FF00
栗色 Maroon #800000 灰绿色 Teal #008080
黄色 Yellow #FFFF00 土黄色 Olive #808000
深绿色 Green #008000 浅绿色 Aqua #00FFFF
蓝色 Blue #0000FF 紫色 Purple #800080
深蓝色 Navy #000080 紫红色 Fuchsia #FF00FF
黑色 Black #000000 灰色 Gray #808080
白色 White #FFFFFF 浅灰色 Silver #C0C0C0


[DTD] NOTATION 类型

04月 16th, 2005 by Genthelvite

通用外部未解析实体定义格式如下:
<!ENTITY 实体名 SYSTEM 二进制数据位置 NDATA 标记名>
例:
<?xml version="1.0" encoding="gb2312">
<!DOCTYPE DOCUMENT[
    <!ELEMENT TITLE (#PCDATA)>
    <!ELEMENT PICTURE EMPTY>
    <!ATTLIST PICTURE source ENTITY #REQUIRED>
    <!NOTATION JPEG SYSTEM "acdsee.exe">
    <!ENTITY pic1 SYSTEM "mypic.jpg" NDATA JPEG>
]>
<DOCUMENT>
    <BOOK>
       <TITLE>《电脑报》好样的</TITLE>
       <PICTURE source="pic1"/>
    </BOOK>
</DOCUMENT>


这个例子的关键就在于标记的使用和定义。

标记的定义格式如下:
<!NOTATION 标记名 SYSTEM 标记描述文字>

其中,标记描述文字起着关键的作用,它可以是以下内容:

1、可以处理或显示的数据格式应用程序的URI
<!NOTATION JPEG SYSTEM "acdsee.exe">

2、描述格式的网络文件的URI
<!NOTATION SOMEFORMAT SYSTEM "http://www.someweb.com/someformat.htm">

3、格式的简单描述
<!NOTATION GIF SYSTEM "image/gif">

XML处理器只会处理XML数据,其它的一切数据都会由外部处理程序处理。

XML在各个领域中的运用

04月 11th, 2005 by Genthelvite

    以下是XML在各个领域中的运用例子,我只是罗列了其中的一部分。目的是为了让大家理解XML的真正作用(不会再有人问XML和HTML的区别了把,呵呵)。其实真正的目的是为了国内早日拥有自己的行业XML标准呀。。。

BSML(Bioinformatic Sequence ML)

    BSML,是一个提供单一文档接口的XML运用程序,它试图使得任何一个项目(Project)的信息描述一体化,用于network/Internet上的数据交换和获取。
   有关它的标准可以在这个地方得到。
http://visualgenomics.com/

CDF(Channel Definition Format) 
    CDF,是Microsoft开发的一种基于XML文件格式的描述频道信息的语言。CDF是“PUSH”技术一种引擎。
    有关它的标准可以在这个地方得到。
http://www.microsoft.com/xml/

CDIF(CASE Data Interchange Format) 
    CDIF是一种团体合作时,例如工具销售者、用户、系统综合人在共享和使用不同版本的工具模型(例如CASE工具)时,如何协调和综合这些工具间的差异所制定的XML标准。
   有关它的标准可以在这个地方得到。
http://www.cdif.org/

GedML(Genealogical Data in XML) 
    是XML运用在系谱编码中的一种DTD,它是建立在一种广为传播的系谱文档信息交换对象GEDCOM基础上的。
    有关它的标准可以在这个地方得到。
http://home.iclweb.com/icl2/mhkay/gedml.html(不过我好象连不上 :( )

gXML(Guideline XML) 
    一种被EDI软件公司支持的文件结构,用于公开电子商务指导方针地交换。
    有关它的标准可以在这个地方得到。
http://www.commercedesk.com/

ICE(Information Content and Exchange ) 
    是一种设计成方便推动在Web的各个网站之间进行内容管理(例如传统的印刷业)和交换的XML运用。
    有关它的标准可以在这个地方得到。
http://www.w3.org/TR/1998/NOTE-ice-19981026

IMS(Educom Instructional Management Systems Project ) 
    IMS是一种特定的支持在线教育标识元语言,它起源与广泛协作、会议请求讨论组和与开发研究相关群组。
    有关它的标准可以在这个地方得到。
http://www.imsproject.org/

JSML(Java Speech ML) 
    JSML是一种运用于Java语音API系统的XML标识语言,它用文本形式来注释语音。
    有关它的标准可以在这个地方得到。
http://java.sun.com/products/java-media/speech/forDevelopers/JSML/

MathML(Mathematical Markup Language ) 
    是一种在Web上描述数学符号的XML方法,类似与使用HTML描述普通文本。有关它的标准可以在这个地方得到。
http://www.w3.org/TR/1998/PR-math-19980224

OSD(Open Software Description Format) 
    由Microsoft和Marimba开发的一种基于XML的软件自动发布系统。OSD使用唯一的XML标志来描述软件包。
    有关它的标准可以在这个地方得到。
http://www.w3.org/TR/NOTE-OSD.html

PGML(Precision Graphics ML)
    紧密图形标识语言(PGML)是一种用来描述2D平面简单的矢量图和用户自己需要的精度图形。 PGML使用PostScript语言和Portable Document Format (PDF)。它同样也提供拉满足Web运用程序的特征。
    有关它的标准可以在这个地方得到。
http://www.w3.org/TR/1998/NOTE-PGML

PIF-XML(Process Interchange Format) 
    这是一种描述处理指令格式的XML语言。
    有关它的标准可以在这个地方得到。
    http://www.xmls.com/pif/
    
SMIL(Synchronized Multimedia Integration Language) 
    一种用来实现同步表达多媒体对象的语言。
    有关它的标准可以在这个地方得到。
    http://www.w3.org/Press/1998/SMIL-REC
    
TMX(Translation Memory eXchange ) 
   设计TMX格式的目的是为了提供一种标准的方法,来描述转化储存器中的数据,这些数据一般都是使用在工具之间的信息交换。
   有关它的标准可以在这个地方得到。
   http://www.lisa.org/
   
VoxML 
    这是一种用来在Web运用程序中传输和交换与声音有关的接口XML语言。
    有关它的标准可以在这个地方得到。
    http://www.voxml.com/

WebDAV(Distributed Authoring and Versioning) 
    Web分布作家和翻译草案是一个用来提高公共远程编辑操作的XML标准草案。它提供了一套机制来避免佣金上的纠纷,增强了非HTML数据类型之间的连接管理,提供了简单属性值元数据的工具,提供了建立和读取数据的容器等等。
   有关它的标准可以在这个地方得到。
   http://www.ics.uci.edu/~ejw/authoring/
   
WIDL(Web Interface Definition Language)
    WIDL是一种元数据XML语法,用来实现定义运用程序编写中Web数据和服务的接口(API)。
   有关它的标准可以在这个地方得到。
   http://www.w3.org/Submission/1997/15/Overview.html
   
XBEL(XML Bookmark Exchange Language )
   XBEL是一种Internet“书签”交换格式。它是XML在群组列表领域的运用。
   有关它的标准可以在这个地方得到。
   http://www.python.org/topics/xml/dtds
   
XCatalog 
    这是一种基于SGML/开放目录上的系统,用来把XML公众标识符翻译成XML系统表示符(统一的资源标识符)。
   有关它的标准可以在这个地方得到。
   http://www.ccil.org/~cowan/XML/XCatalog.html
   
XFRML(Extensible Financial Reporting ML ) 
    它是设计用来金融团体交换和分析大量的金融报告的XML标准。目前还正在设计中。
    有关它的标准可以在这个地方得到。
    http://www.oasis-open.org/cover/xfrml.html

XHTML(Extensible HyperText ML) 
    这个我想大家都应该比较熟悉了把,它可以简单的理解为最新的HTML版本。
    有关它的标准可以在这个地方得到。
    http://www.w3.org/TR/xhtml1/

XLF (Extensible Log Format )
    它是基于XML的Web服务器日志文件格式。
    有关它的标准可以在这个地方得到。
    http://www.docuverse.com/xlf/
    
XMOP(XML Metadata Object Persistence) 
    是设计用来在不同的对象技术间协同合作的XML协议,例如Java,Microsoft COM和CORBA。它意味着对象可以在不同的对象系统(COM和Java)或者不同的Java VMs(Microsoft的VM和Sun的VM)之间传输。
    有关它的标准可以在这个地方得到。
    http://jabr.ne.mediaone.net/documents/xmop.htm

来源:IT人网络

[笔记]《XML基础》第五章 Schema

04月 3rd, 2005 by Genthelvite

何为Schema

XML
Schema
文档本身是另一种文档类型定义的XML文档,不像DTD一样使用自成一体的语法。其标记使用
xsd 名称空间。

DTD写法:<!Element
作者 (#PCDATA)>

Schema写法:<element
name=”
作者” type=”string”/>

<!–“type”类似C++定义的变量。–>

DTD
的主要限制在于它们缺乏数据类型的表达(可以指定一个元素必须包含
PCDATA,但无法指定它必须包含例如
nonNegativeInteger)。还有一个次要问题,即
DTD
无法简化子元素基数性的规范(可以简洁地指定“一个或多个”子元素,但即使可能,指定“七到十二之间”也会过分冗长,甚至完全曲解)。

七到十二”个甜面圈的
XML 模式语法

<xsd:element
name=”donutorder”>

<xsd:complexType>

<xsd:sequence>

<xsd:element
name=”donut” type=”xsd:string”

minOccurs=”7″
maxOccurs=”12″ />

</xsd:sequence>

</xsd:complexType>

</xsd:element>



<!ELEMENT
donut (#PCDATA)>

<!ELEMENT
donutorder

(donut,donut,donut,donut,donut,donut,donut,

donut?,donut?,donut?,donut?,donut?)

Schema特性

可扩展、支持命名空间、可在一个xml文档中使用多个Schema;支持更多数据类型和元素类型。

Schema的扩展数据类型

是微软扩充的数据类型,并没有被W3C组织完全采纳。

IDIDREFNMTOKENlongintshortbyte

Schema中常用的元素类型

schemaelementgroupattributeattributeGroupchoicesimpleTypecomplexTypecomplexTypelistunionuniquesequencerestriction