字符串到文件(JAXB验证)

时间:2013-02-11 06:18:51

标签: java jaxb

我有这样的方法。

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 );

3 个答案:

答案 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"));

  }