Javaを使ってXMLの妥当性検証を行う

ブログ » Javaを使ってXMLの妥当性検証を行う

13 Sep 2019 14:38公開

Java 5 には、スキーマ言語に依存せずに妥当性検証サービスを提供するインターフェースとして、javax.xml.validation パッケージが導入されています。

import java.io.*;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.*;
import org.xml.sax.SAXException;
 
public class DocbookXSDCheck {
 
    public static void main(String[] args) throws SAXException, IOException {
 
        // 1. Lookup a factory for the W3C XML Schema language
        SchemaFactory factory =
            SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
 
        // 2. Compile the schema.
        // Here the schema is loaded from a java.io.File, but you could use
        // a java.net.URL or a javax.xml.transform.Source instead.
        File schemaLocation = new File("/opt/xml/docbook/xsd/docbook.xsd");
        Schema schema = factory.newSchema(schemaLocation);
 
        // 3. Get a validator from the schema.
        Validator validator = schema.newValidator();
 
        // 4. Parse the document you want to check.
        Source source = new StreamSource(args[0]);
 
        // 5. Check the document
        try {
            validator.validate(source);
            System.out.println(args[0] + " is valid.");
        }
        catch (SAXException ex) {
            System.out.println(args[0] + " is not valid because ");
            System.out.println(ex.getMessage());
        }
 
    }
 
}

Refence:
https://www.ibm.com/developerworks/jp/xml/library/x-javaxmlvalidapi.html
https://www.atmarkit.co.jp/ait/articles/0502/23/news115.html
https://www.atmarkit.co.jp/ait/articles/0502/15/news110.html
https://stackoverflow.com/questions/8699620/how-to-validate-xml-with-dtd-using-java

レーティング

rating: 0+x

コメント

Add a New Comment