Netbeans自动完成XSLT / HTML
我下载了Netbeans 8.0.1来创建一些XSLT
文件。 这是一个小例子:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th style="text-align:left">Title</th>
<th style="text-align:left">Artist</th>
</tr>
<xsl:for-each select="catalog/cd">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
如果您有简单的XSLT
文件或简单的HTML
文件, Netbeans
的自动完成功能可以毫无问题地完成工作。 但是,如果你混淆了这两个文件,自动完成功能仅适用于XSLT
。
从<html>
标签开始,我不再有自动完成功能,即使不是在文件末尾的XSLT
标签。
有谁知道这是一个错误还是仅仅为了使用HTML
和XSLT
自动完成的一些设置?
神圣的GNU,在一整个下午后,我设法让XSL和HTML自动完成工作在同一个XSL文件上。
下载HTML5的XSD版本
HTML不是XML,所以我们必须看看XHTML5(HTML序列化为XML)。 我已经从那里拿走了XSD
告诉netbeans使用它
xhtml命名空间http://www.w3.org/1999/xhtml必须使用我们下载的XSD。 所以,在工具→DTD和XML模式→用户目录,添加本地模式,其中System ID
是http://www.w3.org/1999/xhtml
和URI
是the xhtml5.xsd you've downloaded
。
您可能需要重新启动netbeans(我实际上重复了很多次,我无法判断它是否需要)。
在XSL中使用xhtml命名空间
现在,在XSL中,告诉你在根节点上使用属性xmlns="http://www.w3.org/1999/xhtml"
的xhtml命名空间。
<xsl:stylesheet version="1.0"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
您也可以将这个xmlns
属性添加到每个最顶层的html节点(也就是说,在其祖先中没有html节点的每个html节点)。 您还可以在根节点上使用xmlns:html
,并使用<html:*>
而不是<*>
节点。 如果您有多个名称空间,比如HTML+SVG+MathML+XSL
这很有用。
享受html自动完成
你应该有html的自动完成。 它要求你明确输入第一个html
标签,但是一旦在html
标签中,自动完成工作(所以,如果你在xsl:template
创建一个table
,你仍然必须键入<table>
但一旦进入,auto complete会显示<caption>
, <thead>
等等)。
那么HTML中的自动完成XSL呢?
它需要在xhtml的XSD中进行编辑。 我们必须在XSD的根节点上使用xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
在XSD中声明XSL名称空间。 然后,我们必须告诉XSD,每个HTML节点都可以包含一个XSL节点。 这是通过在所有元素组<xs:group>
使用<xs:any namespace="http://www.w3.org/1999/XSL/Transform" processContents="skip"/>
<xs:group>
。
完成这些编辑后,XSD会说“每个HTML节点都可以包含来自XSL名称空间的元素”,因此Netbeans的自动完成功能也会提示XSL节点。
您可以下载我在此处使用的编辑的XSD:http://xenos.reinom.com/stackoverflow/xhtml5.xsd
如果您想知道,我已经做了详细的回复,所以如果您想要混合使用XSL和SVG或XSL以及任何其他XML-XSD格式,您可以做同样的事情。
链接地址: http://www.djcxy.com/p/63645.html