1
* * 편집 - 결국 나는 기능이 얻을 수있는 추상적 인 확장을 제거, 블 레즈에서 아래의 대답은 다음JAXB 값은
안녕하세요 작동합니다.
<xs:complexType name="AbstractWorkflow" abstract="true">
<xs:attribute name="id" type="xs:ID" use="required"/>
</xs:complexType>
<xs:complexType name="ProcessWorkflow" mixed="true">
<xs:complexContent>
<xs:extension base="AbstractWorkflow"/>
</xs:complexContent>
</xs:complexType>
비 정렬 화되는 입력이
<ns1:Workflow stb:id="Workflow" xsi:type="ns1:ProcessWorkflow">workflowHTML.xml</ns1:Workflow>
입니다하지만이 작업을 수행 할 때이 값에 액세스 할 수있는 옵션을 얻을 :
나는 나의 스키마의 복잡한 유형이에서 workflowHTML.xml을 xjc에서 생성 된 클래스 . 이것은 생성 된 AbstractWorkflow 클래스 의 시작입니다.이 클래스에서 선언 할 수있는 주석이 있습니다.이 클래스는 추상 클래스를 확장하여 값을 전달하는 요소임을 지정합니다. 필드 나 필드로 선언하지 마십시오.
편집 내가 원래 가지고 있던 추상 클래스가 아닌 값의 읽기를 구현하는 데 필요한 확장 클래스입니다.
@XmlAccessorType(XmlAccessType.PUBLIC_MEMBER)
@XmlType(name = "ProcessWorkflow")
public class ProcessWorkflow
extends AbstractWorkflow
{
}
감사합니다.
감사합니다. 나는 원래의 질문을 편집했다. 이미 추상 클래스를 확장 할 때 내 상황에서는 작동하지 않습니다. 내 스키마 정의에서 ProcessWorkflow는 값을 전달하는 것입니다. 그래서 이미 확장 태그를 사용했습니다. 또한 @XmlValue를 포함하도록 클래스를 직접 편집하는 경우 @XmlValue로 인사합니다. 다른 클래스를 파생시키는 클래스에서는 사용할 수 없습니다. ** 내 질문을 명확히하기 위해 다른 클래스를 확장/파생시키는 클래스에 값을 추가하는 방법이 있습니까? ** – Gurnard
@Gurnard - 현재 EclipseLink JAXB (MOXy), https : //에서 관련 버그를 수정하고 있습니다. bugs.eclipse.org/336099. 부모 클래스가 요소에 아무것도 매핑하지 않는 한 자식 클래스의 값에 매핑 할 수 있어야합니다. 이 버그는 JAXB 참조 구현에도 존재합니다. 이 수정 사항을 체크 인하면 MOXy를 JAXB 구현으로 사용하여 문제를 해결할 수 있습니다. http://www.eclipse.org/eclipselink/moxy.php –
오. MOXy는 네임 스페이스 접두어 대신 package-info.java를 사용합니까? JAXB의 jdk1.6.0_24 구현은 이와 같이 작동하지 않으므로이 네임 스페이스 문제에 대해서는 잘 작동하는 Sun 구현을 사용하도록 변경했습니다. 또 다른 구현으로 옮길 까봐 걱정됩니다. :-) – Gurnard