2017-11-17 20 views
1

대규모 통합 프로젝트에서 작업하면서 우리는 앞뒤로 통합되는 일부 데이터에 대해 유효성 검사를 수행하고 있습니다.XSD를 사용하여 Java 클래스 생성 제한이 내장되어 있습니다.

우리는 CXF-XJC- 플러그인을 사용하여 XSD 및 WSDL 파일에서 Java 클래스를 생성합니다. 일반 POJO 클래스가 아니라 생성 된 클래스의 일부로 제한을 추가하는 것이 매우 중요합니다.

예제는 다음과 같습니다

<xsd:element name="someString" minOccurs="0"> 
    <xsd:simpleType> 
     <xsd:restriction base="xsd:string"> 
     <xsd:maxLength value="12"/> 
     </xsd:restriction> 
    </xsd:simpleType> 
</xsd:element> 

현재로 만들 :

String someString; 

기본 세터와 게터와 멋진 유창 API를하지만, 아무데도 12 자에 대한 제한 논리는 없다

누구나 제한을 내장하여 생성하는 방법을 알고 있습니까?

+0

https://stackoverflow.com/questions/13775465/does-jaxb-support-xsdrestriction –

+0

의 사용 가능한 복제 아 그래, 이 질문을 찾을 수 없기 때문에이 질문이 다른 것보다 더 많이 인도되기를 바랍니다. – Wisienkas

+0

아마 이것은 흥미로울 것입니다 : 당신은 [XSD에 대한 메모리 내의 객체를 검증 할 수 있습니다] (http://blog.bdoughan.com/2010/11/validate-jaxb-object-model-with-xml.html) - 그래서 그런 식으로 마샬링하지 않고 제약 조건을 확인할 수 있습니다. – Jesper

답변

2

당신은 enableFailFastCheck 속성을 포함하는 별도의 바인딩 파일을 지정할 수 있습니다

<?xml version="1.0" encoding="UTF-8"?> 
<globalBindings xmlns="http://java.sun.com/xml/ns/jaxb" enableFailFastCheck="true"/>