urlrewrite.xml配置文件中的语法错误

时间:2012-08-31 13:32:28

标签: java tuckey-urlrewrite-filter xml-dtd

我有一个错误,我似乎无法用Eclipse中的Tuckey urlrewrite配置文件解决。我已经将违规规则缩小到这些条目:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.1//EN"
    "http://tuckey.org/res/dtds/urlrewrite3.1.dtd">

<urlrewrite>

    <rule>
        <from>/admin/**</from>
        <to>/app/admin/$1</to>
    </rule>
    <outbound-rule>
        <from>/app/admin/**</from>
        <to>/admin/$1</to>
    </outbound-rule>

    <rule>
        <from>/**</from>
        <to>/app/static/$1</to>
    </rule>

</urlrewrite>

此文件在Eclipse XML编辑器中报告验证错误:

  

元素类型“urlrewrite”的内容必须匹配   “((规则|类规则)的,出站规则的,抓*)”

如果我删除了<outbound-rule>或第二个<rule>(路由“/ **”),则错误消失。

据我所知,我已经遵守了DTD,我做错了什么?

1 个答案:

答案 0 :(得分:2)

你必须让outbound-rule成为最后一个元素。

<urlrewrite>

    <rule>
        <from>/admin/**</from>
        <to>/app/admin/$1</to>
    </rule>

    <rule>
        <from>/**</from>
        <to>/app/static/$1</to>
    </rule>

    <outbound-rule>
        <from>/app/admin/**</from>
        <to>/admin/$1</to>
    </outbound-rule>

</urlrewrite>