It is complicated and possibly too difficult. I agree with that.
But right now the issue we're seeing is that the spec xsd is incorrect:
<xsd:complexType name="web-appType">
<xsd:choice minOccurs="0"
maxOccurs="unbounded">
<xsd:group ref="javaee:web-commonType"/>
<xsd:element name="module-name"
type="javaee:string"
minOccurs="0"/>
<xsd:element name="absolute-ordering"
type="javaee:absoluteOrderingType"/>
</xsd:choice>
<xsd:attributeGroup ref="javaee:web-common-attributes"/>
</xsd:complexType>
should be something like:
<xsd:complexType name="web-appType">
<xsd:sequence>
<xsd:element name="module-name"
type="javaee:string"
minOccurs="0"/>
<xsd:element name="absolute-ordering"
type="javaee:absoluteOrderingType"
minOccurs="0"/>
<xsd:group ref="javaee:web-commonType"
minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref="javaee:web-common-attributes"/>
</xsd:complexType>
Regardless of this, the main advantage of using interfaces is that components like jboss-injection can use it as input without depending on any actual parser implementation.
Message was edited by: Carlo de Wolf - corrected minOccurs