XML-L 列表上的 Peter Flynn 好心地将我指向Cocoon。我在 Cocoon 中找到了目录生成器:http: //cocoon.apache.org/2.1/userdocs/directory-generator.html
它根据它们在那里显示的 DTD 生成 XML 目录列表,但这里有一个示例:
<dir:directory xmlns:dir="http://apache.org/cocoon/directory/2.0"
name="stylesheets" lastModified="1056668768203" date="27.06.03 01:06" size="0"
requested="true" sort="name" reverse="false">
<dir:directory name="sites" lastModified="1056668768203" date="27.06.03 01:06" size="0"/>
<dir:file name="dynamic-page2html.xsl" lastModified="1056668768203" date="27.06.03 01:06" size="4321"/>
<dir:file name="simple-xml2html.xslt" lastModified="1056668768203" date="27.06.03 01:06" size="1234"/>
</dir:directory>
还有一个XPath 目录生成器:cocoon.apache.org/2.1/userdocs/xpathdirectory-generator.html
他们的总结是,“XPath 目录生成器提供了目录生成器的所有功能。此外,还可以从目录生成器找到的 XML 文件中获取 XML 片段。” 它生成目录列表,如下例所示:
<dir:directory xmlns:dir="http://apache.org/cocoon/directory/2.0"
name="articles" lastModified="1057183738609" date="03.07.03 00:08" size="0"
requested="true" sort="name" reverse="false">
<dir:directory name="images" lastModified="1057183738609" date="03.07.03 00:08" size="0"/>
<dir:file name="article1.xml" lastModified="1057183738609" date="03.07.03 00:08" size="123">
<dir:xpath query="/article/title">
<title>My first article!</title>
</dir:xpath>
</dir:file>
<dir:file name="article2.html" lastModified="1057183738609" date="03.07.03 00:08" size="345"/>
<dir:file name="article2.xml" lastModified="1057183738609" date="03.07.03 00:08" size="234">
<dir:xpath query="/article/title">
<title>My second article!</title>
</dir:xpath>
</dir:file>
</dir:directory>
我发现这种语言的有趣之处在于它们将所有文件属性放在 XML 实体属性中,而不是在标签之间。我对 XML 语言设计非常幼稚,所以我不知道每种方法的优缺点。但这正是我希望搭载其他人的语言设计的原因。