如何驗證xml文件是否與字符串形式的multischema xsd相對應。 我只有在運行時從數據庫檢索到我的xsd文件,而且我不想在文件系統上創建任何文件。所以我必須針對xsd字符串驗證xml。驗證xml是否對xsd字符串
感謝
更新: 我的實際問題是import語句和包括將要文件鏈接報表。我想知道如何處理導入幷包含指向數據庫中字符串的語句。我的意思是我不能在任何時候創建一個文件。它應該是一個字符串。
如何驗證xml文件是否與字符串形式的multischema xsd相對應。 我只有在運行時從數據庫檢索到我的xsd文件,而且我不想在文件系統上創建任何文件。所以我必須針對xsd字符串驗證xml。驗證xml是否對xsd字符串
感謝
更新: 我的實際問題是import語句和包括將要文件鏈接報表。我想知道如何處理導入幷包含指向數據庫中字符串的語句。我的意思是我不能在任何時候創建一個文件。它應該是一個字符串。
嗨,我做了這個小例子。
我認爲它可以進行優化,但它爲您提供瞭解決方案的全球理念。 :-)
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();
}
}
}
對於從字符串到InputStream的轉換我使用這個帖子:http://stackoverflow.com/questions/247161/how-do-i-turn-a-string-into-a-stream-in-java – sgirardin
謝謝你的響應。請檢查我的帖子更新。我可以輕鬆地將文件讀取爲字符串,但我需要的是導入語句和包含語句。如何映射導入幷包含到字符串而不是文件鏈接。 – user1900588
哪種語言? –
無論你認爲能做到這一點。 Java,python ...任何語言。 – user1900588
大多數語言都可以做到。答案取決於你使用哪種語言 –