JAXB XML 비 직렬화에 대한 표준 접근 방식은 컨텍스트를 생성 할 때 패키지 이름을 지정하는 것입니다. 내가 패키지 이름을 지정하지 않아도 여전히 개체를 역 직렬화 할 수있는보다 유연한 접근 방식을 찾고 있어요JAXB는 XML에 클래스 이름을 저장하여 비 직렬화 코드가 클래스에 대한 지식을 필요로하지 않도록 할 수 있습니까?
JAXBContext jc = JAXBContext.newInstance("com.foo");
Unmarshaller u = jc.createUnmarshaller();
Object o = u.unmarshal(new StringReader("<?xml version="1.0" encoding="UTF-8" standalone="yes"?><MyJaxb>..."));
: 그럼, JAXB는 루트 요소를 기반으로 클래스를 찾습니다. 이것은 JAXB가 XML에 패키지를 저장하는 것처럼 간단하지만이 작업을 수행하는 방법을 찾지 못하는 것 같습니다. 내가 직접 코드를 작성해도 좋지만 불쾌 할 것이다. 가능한 경우 JAXB에 맡기십시오. BTW, 나는 스키마를 사용하지 않고 Annotations와 marshal/unmarshal 만 사용한다. 어떤 아이디어?
클래스 패스에있는 객체를 역 직렬화 할 수있는 기능이 필요합니다. 예 : Object o = u.unmarshal (...); 모든 가능한 패키지를 지정하지 않고 새 패키지로 클래스를 추가 할 때 목록을 지속적으로 업데이트 할 필요가 없습니다. 필요한 것은 패키지 이름을 XML에 저장하는 것입니다. 나는 GSON이 이것을한다고 생각한다. – Andrew
@Andrew. 비 직렬화하고 무엇을할까요? 그것이 문제였습니다. Java에서는 Object를 사용하여 많은 작업을 수행 할 수 있지만 JS로 전달하면 훨씬 많은 작업을 수행 할 수 있습니다. – Osw
Object (예 : 리플렉션)로 할 수있는 일이 많습니다. 그게 내가 필요한 것입니다. 내 솔루션이 XML에 패키지 이름을 추가하는 것처럼 보입니다. – Andrew