Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么XML不打算用作表示语言?_Javascript_Xml_Oop_Xhtml_Presentation - Fatal编程技术网

Javascript 为什么XML不打算用作表示语言?

Javascript 为什么XML不打算用作表示语言?,javascript,xml,oop,xhtml,presentation,Javascript,Xml,Oop,Xhtml,Presentation,我对创建尽可能简单而不是更简单的web应用程序感兴趣。我的意思是,在我看来,我可以(*应该能够*)创建一个XML文档来表示我的应用程序的对象,使用CSS作为“表示层”,使用Javascript来操作对象 我想说的一部分是,在我看来,HTML通过将对象与表示格式混合在一起而混淆了应用程序,这不是CSS的要点吗HTML/XML:什么数据,CSS:如何表示数据,(JS:如何操作数据) 我*可以*使用XLST*将XML转换为XHTML,但是JS必须针对XHTML(表示元素)而不是XML(数据对象)进行编

我对创建尽可能简单而不是更简单的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>
在我看来,这是呈现数据的正确方式。你不同意吗?请解释一下

编辑:我的问题的基础在于一个事实:用户定义的标签不能用于HTML/XHTML,而B)JavaScript不是要与XML一起使用。 编辑2:另外,我不完全熟悉文档中如何处理多个名称空间。因此,如果有人能说明我是否可以通过使用XHTML文档并使用另一个名称空间包含我的XML代码/标记来实现我的目标…

除了即将发布的内容之外,您几乎可以使用任何您想要的元素。然后,您可以对其应用样式表,它将显示良好

<tralala>Hello World!</tralala>

<style>
tralala {
    display: block;
}
</style>
你好,世界!
特拉拉拉{
显示:块;
}
查看当前的web组件库,并可能使用XSL修改数据以匹配web组件。

来自W3C的XML版本包括:

  • XML应能在互联网上直接使用
  • XML应支持多种应用
  • XML应与SGML兼容
  • 应易于编写处理XML文档的程序
  • XML中可选特性的数量应保持在绝对最小值,理想情况下为零
  • XML文档应该是人类可读的,并且相当清晰
  • XML设计应该快速准备
  • XML的设计应正式、简洁
  • XML文档应易于创建
  • XML标记的简洁性是最不重要的
  • XML首先是关于格式良好的XML文档,然后是针对特定XML应用程序定义的有效XML文档,即XML文档对XHTML 1.0版有效


    有上千种XML应用程序定义,以一种通用的方式表示不可能可视化的数据。

    HTML具有定义含义的元素和属性。它们被各种各样的客户端所理解,包括常见的可视web浏览器、搜索引擎索引机器人和屏幕阅读器。它有一些遗留的表示属性和元素,但它们大多已被删除或标记为要避免


    您的自定义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”)


    看一看灵感。

    XHTML是XML,因此XML可以用作表示语言。您应该查看一下您编辑中的Google事实
    a
    不完全正确。例如,如果您使用的是angularjs,那么您所使用的标记将非常好,您将有一个处理folderTree的指令,其中包含子标记的子指令。它可能无法在html验证器中进行验证,但它可以在所有现代浏览器(以及IE8+)中使用(术语可能有点不太合适,对angularjs来说相对较新)@MrMojoRisin,请不要使用
    代码记号
    来突出显示软件名称。我不太明白您是如何得出javascript不适合与xml交互的结论的。XML只是一种表示数据的方式,就像json一样。为什么javascript不能与之交互?XML的优点是可以通过css进行样式化,而json首先必须是协同的
    folderTree { display: block; }
    folderTree item { display: list-item; }
    folderTree name { display: inline; }
    
    <tralala>Hello World!</tralala>
    
    <style>
    tralala {
        display: block;
    }
    </style>