private void primitiveValue(Element item) throws IOException { String type = item.getType(); if (Utilities.existsInList(type, "date", "dateTime", "instant")) { String v = item.getValue(); if (v.length() > 10) { int i = v.substring(10).indexOf("-"); if (i == -1) i = v.substring(10).indexOf("+"); v = i == -1 ? v : v.substring(0, 10 + i); } if (v.length() > 10) json.name("dateTime"); else if (v.length() == 10) json.name("date"); else if (v.length() == 7) json.name("gYearMonth"); else if (v.length() == 4) json.name("gYear"); json.value(item.getValue()); } else if (Utilities.existsInList(type, "boolean")) { json.name("boolean"); json.value(item.getValue().equals("true") ? new Boolean(true) : new Boolean(false)); } else if (Utilities.existsInList(type, "integer", "unsignedInt", "positiveInt")) { json.name("integer"); json.value(new Integer(item.getValue())); } else if (Utilities.existsInList(type, "decimal")) { json.name("decimal"); json.value(item.getValue()); } else if (Utilities.existsInList(type, "base64Binary")) { json.name("binary"); json.value(item.getValue()); } else { json.name("value"); json.value(item.getValue()); } }