根据模式验证XML文档

时间:2010-10-25 08:25:26

标签: java xsd

我需要一些代码示例,它显示了如何根据模式验证xml文件...

下面是我的XML文档..“a.xml”

    一月     21     1983年

假设我要验证上述xml的模式如下所示“XMLValidationSchema.xsd”

                                             
       

现在有人可以帮助我编写将这些作为输入的java代码,并提供正确的输出,就像XML doc是根据我指定的模式的有效doc一样...

...谢谢

1 个答案:

答案 0 :(得分:0)

使用JAXP的一个简单示例:

import java.io.File;
import java.io.IOException;

import javax.xml.XMLConstants;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;
import org.xml.sax.SAXException;

public class XMLValidator {
    public void validateXML(final String schemaPath, final String xmlToValidatePath) throws SAXException, IOException {

        SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
        Source schemaSource = new StreamSource(new File(schemaPath));
        Schema schema = schemaFactory.newSchema(schemaSource);

        Validator validator = schema.newValidator();
        validator.validate(new StreamSource(xmlToValidatePath));
    }
}