我有这样的方法。
public void myMethod(String xml){
...
File file=convertStringToFile(xml) // I need to convert xml string to File
object.fileDemandingMethod(file);
}
fileDemandingMethod(file)期待文件,但我的输入是字符串。
如何以File对象的形式获取我的xml字符串?
我需要这个JAXB验证
Schema schema = schemaFactory.newSchema(new File("C:\\schema.xsd"));
unmarshaller.setSchema(schema );
答案 0 :(得分:2)
由于您也可以使用StreamSource
,因此您可以使用javax.xml.transform.Source
构建String
:
new StreamSource(new StringReader(xml))
答案 1 :(得分:1)
您不需要文件,您肯定不希望写入文件的开销。
setSchema()可以使用任何实现javax.xml.transform.Source
的对象StreamSource就是这样一个类,可以从InputStream或Reader构建。
Reader reader = new StringReader(myString);
Source source = new StreamSource(reader);
unmarshaller.setSchema(spource);
答案 2 :(得分:0)
最好的方法是在例如创建/生成一个类。雇员 从您的架构(C:\ Schema.xsd)
之后其余的很容易
JAXBContext context = JAXBContext.newInstance(Employee.class);
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
Employee object = new Employee();
object.setCode("CA");
object.setName("Cath");
object.setSalary(300);
m.marshal(object, new FileOutputStream("result.xml"));
}