class Item {
int id; /* id */
String name; /* name */
String icon; /* icon */
int quality; /* overallQualityId */
int bonding; /* bonding */
int classId; /* classId */
int equipInventoryType; /* equipData/inventoryType */
String equipSubclass; /* equipData/subclassName */
int strength; /* bonusStrength */
int agility; /* bonusAgility */
int stamina; /* bonusStamina */
int intellect; /* bonusIntellect */
int spirit; /* bonusSpirit */
int armor; /* armor */
int addedArmor; /* armor[armorBonus] */
String[] sockets; /* one per socketData/socket */
int maxDurability; /* durability[max]*/
String[] allowedClasses; /* one per allowableClasses/class */
int requiredLevel; /* requiredLevel */
int attackPower; /* bonusAttackPower */
int critRating; /* bonusCritRating */
int expertiseRating; /* bonusExpertiseRating */
int hasteRating; /* bonusHasteRating */
int hitRating; /* bonusHitRating */
int spellpower; /* bonusSpellPower */
int resilience; /* bonusResilience */
Spells[] spells; /* one per spellData/spell */
ItemSet itemSet; /* setData */
ItemSource source; /* source */
}class Spell {
int trigger; /* trigger */
String desc; /* desc */
}class ItemSet {
String name; /* name */
String[] items; /* one per item */
Map<int, String> bonuses; /* setBonus[ threshold ], setBonus[ desc ] */
}class ItemSource {
String sourceType; /* [value] */
/* These are only defined when sourceType == "sourceType.creatureDrop" */int areaId; /* [areaId] */
String areaName; /* [areaName] */
int creatureId; /* [creatureId] */
String creatureName; /* [creatureName] */
String difficulty; /* [difficulty] */
int dropRate; /* [dropRate] */
}This represents the Item class that should be generated by the XML parser implementations.