• 코드:
​x
 
1
import java.io.File;
2
import java.io.IOException;
3
import javax.xml.XMLConstants;
4
import javax.xml.transform.stream.StreamSource;
5
import javax.xml.validation.SchemaFactory;
6
import javax.xml.validation.Schema;
7
import org.xml.sax.SAXException;
8
​
9
public class prog {
10
​
11
    public static void main(String[] args) {
12
        String valid = "적합한";
13
        try { 
14
            // XML 파일과 XSD 파일을 인수로 전달받아 해당 XML 파일이 XSD 스키마에 대하여 적합한지를 검사함.
15
            validate("../tcpsk/examples/media/xsd05_bad.xml", "../tcpsk/examples/media/xsd05.xsd"); 
16
        } catch (IOException e) {
17
            valid = "적합하지 않은";
18
            System.out.println(e.getMessage());
19
        } catch (SAXException e) {
20
            valid = "적합하지 않은";
21
            System.out.println(e.getMessage());
22
        }
23
        System.out.println("이 문서는 전달받은 XSD 스키마에 " + valid + " XML 문서입니다.");
24
    }
25
​
26
    public static void validate(String xmlFile, String xsdFile) throws SAXException, IOException {
27
        SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
28
        Schema schema = schemaFactory.newSchema(new File(xsdFile)); // XSD 스키마 생성함.
29
        StreamSource stream = new StreamSource(new File(xmlFile));  // XML 파일을 스트림으로 생성함.
30
​
31
        (schema.newValidator()).validate(stream);   // 생성된 스트림을 XSD 스키마로 검사함.
32
    }
33
}
표준입력 & 실행옵션