我的 layer.xml 来自 netbeans 有什么问题?

What is wrong with my layer.xml from netbeans?

我尝试在 netbeans 10 中创建一个新的调色板,但以下 2 个错误不允许我编译该项目:

文档根元素 "folder",必须匹配 DOCTYPE 根 "JavaPalette"。 [3]

文档中跟在根元素之后的标记必须格式正确。 [11]

我的 XML 看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.2//EN"     "http://www.netbeans.org/dtds/filesystem-1_2.dtd">
<folder name="JavaPalette">
<folder name="Items">
    <attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.modules.javasourcefilepalette.Bundle"/>
    <file name="Item.xml" url="resources/Item.xml">
        <attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.modules.javasourcefilepalette.Bundle"/>
    </file>
</folder>
</folder>
<filesystem/>

我不知道这两条错误消息是什么意思,但我完全按照教程中的说明做了。 xml 文件的在线验证也显示该错误。

https://platform.netbeans.org/tutorials/nbm-palette-api2.html

我没有按照教程进行操作,但据我所知,您的 filesystem 标签无效。如果您查看 DTD,您会发现元素 filesystem 未声明为 EMPTY(有关更多信息,您可以阅读有关它的更多信息 here)。所以你必须提供开始和结束标签。在您发布的示例中,您只使用了 <filesystem/>,这是不允许的。

您必须按如下方式更改 xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.2//EN"     "http://www.netbeans.org/dtds/filesystem-1_2.dtd">
<filesystem>
    <folder name="JavaPalette">
        <folder name="Items">
            <attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.modules.javasourcefilepalette.Bundle"/>
            <file name="Item.xml" url="resources/Item.xml">
                <attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.modules.javasourcefilepalette.Bundle"/>
            </file>
        </folder>
    </folder>
</filesystem>