Hi list,

In the method resolveSchema of ExtensibleXmlParser class, I think there's a problem.

I'm using a changeset.xml, which has such a header

<change-set xmlns="http://drools.org/drools-5.0/change-set"
    xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
    xs:schemaLocation="http://drools.org/drools-5.0/change-set /META-INF/schema/change-set-1.0.0.xsd">

I want to fetch the xsd file from the path /META-INF/schema, but failed.

According to the method statement following, to find a xsd file name, the systemId was substring-ed using lastIndexOf method. In this case no matter what path I use to replace the bold text, only change-set-1.0.0.xsd will be picked. Then the method will find the file under /META-INF, META-INF and class path. That means even I've written the path /META-INF/schema/change-set-1.0.0.xsd, but /META-INF/change-set-1.0.0.xsd will be used.

        String xsd;
        int index = systemId.lastIndexOf( "/" );
        if ( index == -1 ) {
            index = systemId.lastIndexOf( "\\" );
        }
        if ( index != -1 ) {
            xsd = systemId.substring( index + 1 );
        } else {
            xsd = systemId;
        }
--
唐睿