根据xsd字符串验证xml

时间:2013-07-30 05:37:02

标签: xml validation xsd

如何根据字符串形式的multischema xsd验证xml文件。 我只在运行时从数据库中检索到我的xsd文件,我不想在文件系统上创建任何文件。所以我必须针对xsd字符串验证xml。

谢谢

更新: 我的实际问题是import语句和include语句将成为文件链接。我想知道如何处理指向数据库中字符串的import和include语句。我的意思是我不能在任何时候创建一个文件。它应该是一个字符串。

1 个答案:

答案 0 :(得分:0)

嗨,我做了一个小例子。

我认为它可以进行优化,但它为您提供了一个全球性的解决方案。 : - )

import java.io.ByteArrayInputStream;
import java.io.InputStream;

import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.SchemaFactory;

import org.xml.sax.SAXException;

public class xsd {


    /**
     * @param args
     */
    public static void main(String[] args) {

        String xsd = "Your XSD";
        String xsd2 = "2nd XSD";

        InputStream is = new ByteArrayInputStream(xsd.getBytes());
        InputStream is2 = new ByteArrayInputStream(xsd2.getBytes());

        SchemaFactory sf = SchemaFactory.newInstance(javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI);

        Source source = new StreamSource(is);
        Source source2 = new StreamSource(is2);

        try {
            sf.newSchema(new Source[]{source,source2});
        } catch (SAXException e) {
            e.printStackTrace();
        }
    }
}