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