다소 복잡한 XML 스키마를 Java의 스키마 개체로로드하려고 시도하고 있으므로 XML 메시지에 대한 유효성 검사를 일부 수행 할 수 있습니다.Java 구문 분석 스키마 가져 오기 및 포함?
내 코드는 다음과 유사합니다
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="base_1">
<xs:import namespace="base_1" schemaLocation="common/MessageBase.xsd"/>
</xs:schema>
... 등 :
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = factory.newSchema(new StreamSource(new File("schema/schema.xsd")));
내 스키마가 꽤 많은 수입이있다. 스키마를로드하려고하면 많은 오류가 발생합니다. 이것과 관련된 다른 질문 하나에 따라 리소스 분석기를 지정해야하지만 기본적으로 처리해야하는 것은 아닙니다.
그렇다면 필자가 작성한 응용 프로그램을 실행하거나 기본 스키마 파일을 기준으로 스키마를 배치해야하는 특정 디렉터리가 있습니까?
마지막으로 XMLSpy 또는 이와 유사한 스키마를로드하면 정상적으로 작동하며 아무 문제없이 XML 인스턴스의 유효성을 검사 할 수 있습니다.
src-resolve : 'base : StatusWithError_optional'을 (n) '속성 그룹'구성 요소로 해석 할 수 없습니다. – magneticMonster
다른 문제입니다. 그것은 귀하의 스키마가 완전하고 자체 포함되지 않았 음을 나타냅니다. StatusWithError_optional이라는 속성 그룹이 있습니까? 올바른 네임 스페이스에 있습니까? – bmargulies
그래, 그것은 기본 스키마 파일과 같은 수준에서 별도의 파일에 정의되어 있습니다. 같은 네임 스페이스. systemID는 루트 .xsd 파일 또는 스키마의 루트 디렉토리 경로 여야합니까? 2-arg 생성자의 다른 인수는 어떨까요? – magneticMonster