Tôi đọc thành công lược đồ XSD bằng cách sử dụng org.eclipse.xsd.util.XSDResourceImpl
và xử lý tất cả các phần tử XSD, loại, thuộc tính, v.v.
Nhưng khi tôi muốn xử lý tham chiếu đến phần tử được khai báo trong giản đồ đã nhập, tôi nhận được null
làm loại của nó. Có vẻ như các lược đồ đã nhập không được xử lý bởi XSDResourceImpl
. Bất kỳ ý tưởng nào?Đọc XSD bằng cách sử dụng org.eclipse.xsd.util.XSDResourceImpl
final XSDResourceImpl rsrc = new XSDResourceImpl(URI.createFileURI(xsdFileWithPath));
rsrc.load(new HashMap());
final XSDSchema schema = rsrc.getSchema();
...
if (elem.isElementDeclarationReference()){ //element ref
elem = elem.getResolvedElementDeclaration();
}
XSDTypeDefinition tdef = elem.getType(); //null for element ref
Cập nhật:
tôi đã XSD nhập khẩu không hợp lệ, nhưng không nhận được ngoại lệ. Nó có nghĩa là nó thực sự không được phân tích cú pháp. Có cách nào để buộc tải XSD nhập khẩu cùng với chính XSD không?