如何针对字符串形式的多模式 xsd 验证 xml 文件?我只在运行时从数据库中检索了我的 XSD 文件,我不想在文件系统上创建任何文件。所以我必须针对XSD 字符串验证 XML 。
谢谢
更新:我的实际问题是导入语句和包含语句,它们将成为文件链接。我想知道如何处理指向数据库中字符串的导入和包含语句。我的意思是我不能在任何时候创建一个文件。它应该是一个字符串。
如何针对字符串形式的多模式 xsd 验证 xml 文件?我只在运行时从数据库中检索了我的 XSD 文件,我不想在文件系统上创建任何文件。所以我必须针对XSD 字符串验证 XML 。
谢谢
更新:我的实际问题是导入语句和包含语句,它们将成为文件链接。我想知道如何处理指向数据库中字符串的导入和包含语句。我的意思是我不能在任何时候创建一个文件。它应该是一个字符串。
嗨,我做了这个小例子。
我认为它可以进行优化,但它为您提供了解决方案的全局想法。:-)
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();
}
}
}