1

このような方法があります。

public void myMethod(String xml){
   ...

   File file=convertStringToFile(xml)  // I need to convert xml string to File
   object.fileDemandingMethod(file);

}

fileDemandingMethod(file) は File を期待していますが、私の入力は文字列です。

xml 文字列を File オブジェクトの形式で取得するにはどうすればよいですか?

この JAXB 検証にはこれが必要です

Schema schema = schemaFactory.newSchema(new File("C:\\schema.xsd"));
unmarshaller.setSchema(schema );
4

3 に答える 3

2

を使用することもできるため、からStreamSourceを構築できます。javax.xml.transform.SourceString

new StreamSource(new StringReader(xml))
于 2013-02-11T06:42:36.220 に答える
1

ファイルは必要ありません。ファイルへの書き込みのオーバーヘッドは絶対に必要ありません。

setSchema() は、javax.xml.transform.Source を実装する任意のオブジェクトを取ることができます

StreamSourceはそのようなクラスの 1 つで、InputStream または Reader から構築できます。

 Reader reader = new StringReader(myString);
 Source source = new StreamSource(reader);
 unmarshaller.setSchema(spource);
于 2013-02-11T06:43:14.527 に答える
0

これを行う最善の方法は、スキーマ (C:\Schema.xsd) から Employee などのクラスを作成/生成することです。

その後、残りは簡単です

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

  }
于 2013-02-11T06:30:58.983 に答える