in src/main/java/org/apache/xmlbeans/impl/inst2xsd/RussianDollStrategy.java [537:595]
protected QName combineToMoreGeneralSimpleType(QName t1, QName t2) {
if (t1.equals(t2)) {
return t1;
}
if (t2.equals(XmlShort.type.getName()) && t1.equals(XmlByte.type.getName())) {
return t2;
}
if (t1.equals(XmlShort.type.getName()) && t2.equals(XmlByte.type.getName())) {
return t1;
}
if (t2.equals(XmlInt.type.getName()) &&
(t1.equals(XmlShort.type.getName()) || t1.equals(XmlByte.type.getName()))) {
return t2;
}
if (t1.equals(XmlInt.type.getName()) &&
(t2.equals(XmlShort.type.getName()) || t2.equals(XmlByte.type.getName()))) {
return t1;
}
if (t2.equals(XmlLong.type.getName()) &&
(t1.equals(XmlInt.type.getName()) || t1.equals(XmlShort.type.getName()) || t1.equals(XmlByte.type.getName()))) {
return t2;
}
if (t1.equals(XmlLong.type.getName()) &&
(t2.equals(XmlInt.type.getName()) || t2.equals(XmlShort.type.getName()) || t2.equals(XmlByte.type.getName()))) {
return t1;
}
if (t2.equals(XmlInteger.type.getName()) &&
(t1.equals(XmlLong.type.getName()) || t1.equals(XmlInt.type.getName()) ||
t1.equals(XmlShort.type.getName()) || t1.equals(XmlByte.type.getName()))) {
return t2;
}
if (t1.equals(XmlInteger.type.getName()) &&
(t2.equals(XmlLong.type.getName()) || t2.equals(XmlInt.type.getName()) ||
t2.equals(XmlShort.type.getName()) || t2.equals(XmlByte.type.getName()))) {
return t1;
}
if (t2.equals(XmlFloat.type.getName()) &&
(t1.equals(XmlInteger.type.getName()) ||
t1.equals(XmlLong.type.getName()) || t1.equals(XmlInt.type.getName()) ||
t1.equals(XmlShort.type.getName()) || t1.equals(XmlByte.type.getName()))) {
return t2;
}
if (t1.equals(XmlFloat.type.getName()) &&
(t2.equals(XmlInteger.type.getName()) ||
t2.equals(XmlLong.type.getName()) || t2.equals(XmlInt.type.getName()) ||
t2.equals(XmlShort.type.getName()) || t2.equals(XmlByte.type.getName()))) {
return t1;
}
//double, decimal will never get here since they don't get generated
//the rest of the combinations are not compatible, so they will combine in xsd:string
return XmlString.type.getName();
}