JAXB treets пустой международный атрибут XML как 0

JAXB treets пустой международный атрибут XML как 0, который меня устраивает, но у меня есть требование для хранения его как пустого указателя. Кажется, что я не могу изменить класс DataConverterImpl на пользовательскую реализацию. Что могло быть сделано если вообще?

<xs:attribute name="Count" type="Integer0to999" use="optional">

<xs:simpleType name="Integer0to999">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Integer values, from 0 to 999 inclusive</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="0"/>
      <xs:maxInclusive value="999"/>
    </xs:restriction>
  </xs:simpleType>

После xjc компиляция схемы я получил класс со следующим:

 @XmlAttribute(name = "Count")
    protected Integer passengerCount;

Во время синтаксического анализа XML parseInt() от позвоните DataConverterImpl.class от Sun (Oracle), которая код ниже, Ваш фирн, собирающийся стать пустым от этого кода:

 public static int _parseInt(CharSequence s) {
        int len = s.length();
        int sign = 1;

        int r = 0;

        for( int i=0; i<len; i++ ) {
            char ch = s.charAt(i);
            if(WhiteSpaceProcessor.isWhiteSpace(ch)) {
                // skip whitespace
            } else
            if('0'<=ch && ch<='9') {
                r = r*10 + (ch-'0');
            } else
            if(ch=='-') {
                sign = -1;
            } else
            if(ch=='+') {
                ; // noop
            } else
                throw new NumberFormatException("Not a number: "+s);
        }

        return r*sign;
    }
7
задан kot 6 May 2010 в 15:49
поделиться