2016-05-20 1 views
0

У меня есть вопрос, связанный с плагином jaxb meven и тем, как он генерирует свои классы. У меня есть этот XSD:jax2b maven плагин простой тип

<xs:element maxOccurs="1" minOccurs="0" name="CtctDtls" type="ContactDetails2"/> 


<xs:complexType name="ContactDetails2"> 
     <xs:sequence> 
      <xs:element maxOccurs="1" minOccurs="0" name="NmPrfx" type="NamePrefix1Code"/> 
      <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/> 
      <xs:element maxOccurs="1" minOccurs="0" name="PhneNb" type="PhoneNumber"/> 
      <xs:element maxOccurs="1" minOccurs="0" name="MobNb" type="PhoneNumber"/> 
      <xs:element maxOccurs="1" minOccurs="0" name="FaxNb" type="PhoneNumber"/> 
      <xs:element maxOccurs="1" minOccurs="0" name="EmailAdr" type="Max2048Text"/> 
      <xs:element maxOccurs="1" minOccurs="0" name="Othr" type="Max35Text"/> 
     </xs:sequence> 
    </xs:complexType> 

<xs:simpleType name="Max2048Text"> 
     <xs:restriction base="xs:string"> 
      <xs:minLength value="1"/> 
      <xs:maxLength value="2048"/> 
     </xs:restriction> 
    </xs:simpleType> 

это с помощью org.codehaus.mojo, jaxb2-Maven-плагин получает переведенный в:

public class ContactDetails2 { 

    ... 
    protected String faxNb; 
    @XmlElement(
     name = "EmailAdr" 
    ) 
    protected String emailAdr; 
    ... 

} 

Который когда выстраивали он идет преобразуются в:

<CtctDtls> 
<EmailAdr/> 
</CtctDtls> 

Это недопустимо, потому что, если присутствует электронное письмо, оно должно иметь хотя бы один символ. Как я могу это исправить? Могу ли я изменить конфигурацию плагина maven? Или что еще я могу сделать так, чтобы, если письмо является пустой строкой, это не получается?

https://wiki.xmldation.com/General_Information/ISO_20022/pain.008

ответ

Смежные вопросы