Я использую XSOM Java-библиотеку для анализа XML-схемы.
Я не знаю, как получить атрибут «Использование» для объявления атрибута.
Вот мой код, чтобы получить все объявления атрибутов для CompleType
// To get ComplexType attributes
private static void getComplexAttributes(XSComplexType xsComplexType) {
Collection<? extends XSAttributeUse> c = xsComplexType.getAttributeUses();
Iterator<? extends XSAttributeUse> i = c.iterator();
while(i.hasNext()) {
// i.next is attributeUse
XSAttributeUse attributeUse = i.next();
XSAttributeDecl attributeDecl = i.next().getDecl();
System.out.println("Attributes for CoplexType: " + xsComplexType.getName());
parseAttribute(attributeDecl, attributeUse);
}
}
// Get attribute info
private static void parseAttribute(XSAttributeDecl attributeDecl, XSAttributeUse attUse) {
System.out.println("Attribute Name: " + attributeDecl.getName());
XSSimpleType xsAttributeType = attributeDecl.getType();
System.out.println("Attribute Type: " + xsAttributeType.getName());
if (attUse.isRequired())
System.out.println("Use: Required");
else
System.out.println("Use: Optional");
System.out.println("Fixed: " + attributeDecl.getFixedValue());
System.out.println("Default: " + attributeDecl.getDefaultValue());
}
И я получаю эту ошибку:
java.util.NoSuchElementException
Указывая на линию
XSAttributeDecl attributeDecl = i.next().getDecl();
Кто-нибудь может помочь? я что-то пропустил?
Спасибо