private void printMappings( DB db, ObjectDef def, PrintWriter out, String xPath, String parentTag, Map<String, String> enums) { if (xPath == null) { xPath = ""; } if (def.getValueType() != null) { // This object has a text value (It's an element that has simple content) System.out.println(" - Simple Content"); } FieldDef[] fields = def.getAllFields(); for (int i = 0; i < fields.length; i++) { FieldDef field = fields[i]; if ((field.fFlags & FieldDef.FLAG_ATTRIBUTE) > 0) { System.out.println(" " + field.fName + " - Attribute"); printFieldDesc(field, out); out.print( " <field name=\"" + (parentTag == null ? "" : parentTag.toUpperCase() + "_") + field.getTag().toUpperCase() + "\""); if (field.getFieldType().isEnum()) { String enumName = field.getFieldType().getEnum(); String valueSetName = (parentTag == null ? "" : parentTag + "_") + field.getTag(); out.print(" valueset=\"" + valueSetName + "\""); enums.put(enumName, valueSetName); } out.println(">" + xPath + "@" + field.getTag() + "</field>"); } else { FieldType ft = field.getFieldType(); if (ft.getDataType() == ADKDataType.COMPLEX) { System.out.println(field.fName + " - Structure (Complex Elements)"); ObjectDef fieldObj = db.getObject(ft.getClassType()); if (fieldObj != null) { if (field.isRepeatable()) { FieldDef[] key = fieldObj.getKey(null); if (key != null && key.length == 1 && (key[0].fFlags & FieldDef.FLAG_ATTRIBUTE) > 0) { String newPath = xPath + field.getTag() + "[@" + key[0].getTag() + "='ZZZZ']/"; if (fieldObj.getValueType() == null) { printMappings(db, fieldObj, out, newPath, field.getTag(), enums); } else { printOutFieldMapping( fieldObj.getValueDef(null), out, newPath, field.getTag(), enums); } continue; } } printMappings(db, fieldObj, out, xPath + field.getTag() + "/", field.getTag(), enums); } } else { printOutFieldMapping(field, out, xPath, parentTag, enums); } } if (field.isRepeatable()) {} } if (def.isTopic()) { // ADK Metadata doesn't include SIF_ExtendedElements or SIF_Metadata. Add these counts in ObjectDef o = db.getObject("SIF_ExtendedElements"); if (o != null) { printMappings(db, o, out, "SIF_ExtendedElements", "SIF_ExtendedElements", enums); } // o = db.getObject( "SIF_Metadata" ); // if( o != null ){ // printMappings( db, o, out, "SIF_Metadata/" ); // } } }