2011-03-15 1 views
1

simpleType 또는 complexType이 정의되어 있고 유형이 스키마 파일의 여러 요소 선언에 사용 된 것으로 확인되면 simpleType 또는 complexType이 "JAXBElemet createXyz (Xyz xyz)"와 같은 메소드 서명으로 생성됩니다. 그러나 근본적인 이유인지는 확실하지 않습니다.xml에 의해 ObjectFactory의 "JAXBElemet <Xyz> createXyz (Xyz xyz)"와 같은 메서드 서명이 생성되는 xml 스키마 컨텍스트는 무엇입니까?

답변

1

개체를 XML로 마샬링하려면 JAXB에서 사용할 XML 요소의 이름을 알아야합니다. 이 메소드는 (a) 클래스의 @XmlRootElement 주석에서 가져 오거나 (b) 요소 이름을 포함하는 JAXBElement에 객체를 래핑하여 가져옵니다. XJC가 @XmlRootElement없이 클래스를 생성하는 경우

ObjectFactory에서 해당 클래스의 팩토리 메소드 대신 필요한 마샬링 정보를 제공하기 위해, JAXBElement 래퍼를 사용합니다.

그런 다음 XJC가 일부 클래스에서는 @XmlRootElement을 생성하지만 다른 클래스에서는 생성하지 않기로 결정한 이유를 묻고 싶습니다.하지만 이전에 문의 했으므로 이제 가서 살펴보십시오.