我对创建尽可能简单的web应用程序感兴趣,而不是更简单。我的意思是,在我看来,我可以(应该能够)创建一个XML文档来表示我的应用程序的对象,使用CSS作为"表示层",并使用Javascript来操作对象。
我想说的是,在我看来,HTML通过混合对象和表示格式混淆了应用程序,这难道不是CSS的重点吗?——HTML/XML:什么数据,CSS:如何呈现数据,(JS:如何操作数据)
我* *可以*使用XLST将XML转换为XHTML,但随后JS必须针对XHTML(表示元素)而不是XML(数据对象)进行编码,这会增加不必要的复杂性。
我是从程序员的角度出发的,希望使用诸如将表示与数据(HTML/XML vs CSS)分离和面向对象编程等设计原则。说目前HTML和CSS是"定义"表示层所必需的,这不是没有意义吗?
我正在寻找的评论是关于正确的编码方式,而不是对当前标准的"修复"。
下面是一个例子。我可以这样写:
HTML/XHTML:<ul class="folderTree">
<li class="fTreeItem"><img /><span class="fTreeItemName">Directory</span>
<ul class="fTreeItemContents">
...
</ul>
</li>
...
</ul>
…但如果我能这样做,设计原则可能会得到更好的满足:
<folderTree>
<item><img /><name>Directory</name>
<folderTree>
...
</folderTree>
</item>
</folderTree>
,包括以下CSS:
folderTree { display: block; }
folderTree item { display: list-item; }
folderTree name { display: inline; }
在我看来,这似乎是呈现数据的适当方式。你不同意吗?请解释…
编辑:我的问题的基础是基于以下事实:a)用户定义的标签不能在HTML/XHTML中使用,b) javascript不意味着与XML一起使用。
编辑2:另外,我不完全熟悉如何在一个文档中处理多个名称空间。因此,如果有人能告诉我是否可以通过使用XHTML文档和使用另一个名称空间包含我的XML代码/标记来实现我的目标……HTML有定义了含义的元素和属性。它们被各种各样的客户所理解,包括常见的视觉网络浏览器、搜索引擎索引机器人和屏幕阅读器。它有一些遗留的表示属性和元素,但它们大多已被删除或标记为避免使用。
您的自定义XML语言的元素和属性可能比HTML中的元素和属性具有更具体的含义,但它们的含义不会被客户端理解。您可以用样式表处理可视用户,但不能很好地服务于搜索引擎、屏幕阅读器和其他用户。
我假设您希望在浏览器中运行应用程序。浏览器呈现UI的语言是HTML/XHTML。如果你想用自己的语言来定义UI,你需要把它翻译成浏览器能理解的语言。这可以在JIT或页面加载时完成。
我同意你的观点,运行XSLT使javascript部分更加复杂。但你能做的是用javascript写一个"解释器"(或"渲染引擎")。因此,你的应用程序将用XML+CSS+JavaScript编写,但不是在裸浏览器上运行它-你将使用一个库,它将使用"HTML指令"呈现你的XML ui。
它可以像XML节点替换一样简单,因此当您在XML中说-它将在HTML中生成。根据将javascript连接到表示定义的方式,您将需要提供某种类型的适配器用于javascript访问。例如,你可以"拦截"jQuery $(…)调用,并用$("folderTree")代替$("div.folderTree")。但是,如果您已经使用适当的页面对象访问UI元素,那么翻译的逻辑就可以封装在这个页面对象中。例如,PageObject类可以足够聪明地知道,当你请求treeFolder节点时,它需要查找$("div.treeFolder")而不是$("treeFolder")。
看看angular.js的指令吧。
除了即将推出的web组件和当前库之外,您几乎可以使用任何您想要的元素。然后你可以给它应用一个样式表,它会显示得很好。
<tralala>Hello World!</tralala>
<style>
tralala {
display: block;
}
</style>
查看当前的web组件库,并可能使用XSL修改您的数据以匹配web组件。
W3C对XML的设计目标是:
- XML应该在Internet上直接可用。
- XML应该支持各种各样的应用。
- XML必须兼容SGML。
- 处理XML文档的程序应该很容易编写。
- XML中可选特性的数量应保持在绝对最小值,理想情况下为零。
- XML文档应该是人类可读的和合理的清晰。
- XML设计要快速准备。
- XML的设计应该是正式和简洁的。
- XML文档应该易于创建。 XML标记的简洁性是最不重要的。
XML首先是关于格式良好的XML文档,然后是针对特定XML应用程序定义的有效XML文档,即XML文档对XHTML 1.0版本有效。
有成千上万的XML应用程序定义,表示不可能可视化数据,在不可能以通用的方式。