내가 같은 문제 asked here으로 실행 한 :의 경로를 지정하지 않고 상대 DTD와 XML 파일을 구문 분석 명시 적으로
<?xml version="1.0"?>
<!DOCTYPE convert SYSTEM "someRules.dtd">
: 나는 같은 DTD 파일에 상대 경로를 포함하는 XML 파일을 구문 분석 할 연결된 질문에 대답이 있습니다.
db.setEntityResolver(new EntityResolver() {
@Override
public InputSource resolveEntity(String publicId, String systemId)
throws SAXException, IOException {
if (systemId.contains("schema.dtd")) {
return new InputSource(new FileReader("/path/to/schema.dtd"));
} else {
return null;
}
}
});
내가 schema.dtd
및 /path/to/schema.dtd
가 명시 적으로 쓰기보다는 (내 경우에는이 someRules.dtd
될 것입니다) 그것을 XML 파일을 가져 와서 동적으로에 대한 검색하지 않도록합니다 : 그것은이 같은 명시 적 이름과 경로를 지정하지만 XML 문서에 지정된 경로 나중에 someRules.dtd
의 위치를 변경하기로 결정할 때 Java 코드를 변경하지 않아도됩니다. 나는 someRules.dtd
을 움직여야하고 XML 문서에서 경로를 조정해야합니다.
어떻게하면됩니까?