输入带XML的字段

时间:2010-04-02 05:54:09

标签: css xml xslt

我正在编写一个只有XML的页面。没有XSL。 XML和CSS一切顺利。 但是如何使用XML和CSS创建输入字段? 这真的有可能吗?

3 个答案:

答案 0 :(得分:0)

Xml用于数据转换,移植,传输等 - 与数据相关的事情。

CSS用于造型。

你需要一些东西,例如html(或XForms?)来提供/渲染控件。

或者,如果您计划自己渲染控件,那么您可以添加一个元素,并通过自己解析来呈现控件。

<MyControl type="Text">This is a test value</MyControl>

当您看到MyControl具有文本类型时,请添加文本控件。

<强> - 编辑 -

这是对你的评论的回应。

我明白你在说什么;要清楚,我相信CSS本质上/实际上是用于样式 - 因此CSS应用于“控件”,CSS不是控件;所以我们想出了某些类,id,选择器并将它们应用到控件上。

这可能是一个肥胖的例子,但它就像告诉“油漆”建立一个“众议院”。

可能你已经知道了这一点,但这只是添加:以下是如何将CSS应用于html按钮控件。 取自here的示例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CSS Button</title>
<style type="text/css">
body {
  font: 140%/1.6 "Gill Sans", Futura, "Lucida Grande", Geneva, sans-serif;
  color: #666;
  background: #fff;
}

a:link, a:visited {
  display: block;
  width: 6em;  
  padding: 0.2em;
  line-height: 1.4;
  background-color: #94B8E9;
  border: 1px solid black;
  color: #000;
  text-decoration: none;
  text-align: center;
}

a:hover {
 background-color: #369;
 color: #fff;
}

</style>
</head>

<body>

<p><a href="#">Button</a></p>

</body>
</html>

上面的代码将呈现一个带有css的按钮,如下所示: alt text http://img689.imageshack.us/img689/4615/72060104.jpg

所以要直接回答你的问题,我相信用CSS渲染控件是不可能的。

现在根据您的要求,我理解: 1.您想自己渲染控件。 2.您想将CSS应用于该控件。

解决方案1: 1.如前所述,添加,解析和呈现自定义控件xml标记。 2.在xml中添加CSS样式,see example

解决方案2: 1.如前所述,添加,解析和呈现自定义控件xml标记。 2.在xml CDATA中添加css;当xml解析时,从CDATA中获取CSS,并应用于控件。

答案 1 :(得分:0)

我不相信你只能用CSS来创建控件。

然而..

如果您不介意扩展使用其他内容,我建议您使用 XForms 。它与XML一起工作非常好,它使用CSS进行样式化。

以下是一些指南,教程和文章的链接,以帮助您入门:

http://en.wikibooks.org/wiki/XForms

http://w3schools.com/xforms/default.asp

http://www.ibm.com/developerworks/xml/library/x-xformsfirefox/

http://www.ibm.com/developerworks/library/x-xformswhy.html

希望这有帮助!

答案 2 :(得分:0)

CSS可以设置XML样式,但浏览器在语义方面不一致。

例如:

<Link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="..." /> 

将在Firefox中创建一个工作链接,但在Safari中不起作用。 (我认为它也适用于IE,但我很久以前就试过了,所以我错了。我也试过使用<xhtml:a ...>,我认为它也适用于某些浏览器而不是其他浏览器。也许有办法在javascript中执行此操作。)

所以:在CSS样式的XML中,甚至没有一种可移植的方式来获取链接行为。 我认为输入字段根本不可能。 在浏览器中执行xslt转换为html更加便携。 您也可以查看XForms - 尽管没有浏览器支持本机。