Tenemos un esquema XSD con una declaración como esta:xsd: Se genera la lista de tipo personalizado en la lista <String>
<xsd:simpleType name="customId">
<xsd:annotation>
<xsd:appinfo>
<jaxb:javaType name="com.company.identifiers.CustomId" parseMethod="fromString" printMethod="toString"/>
</xsd:appinfo>
</xsd:annotation>
<xsd:restriction base="xsd:int" />
</xsd:simpleType>
Entonces, yo quiero tener una lista de este tipo en una clase Java generado:
<xsd:complexType name="SomeMessage">
...
<xsd:attribute name="customIds" use="optional">
<xsd:simpleType>
<xsd:list itemType="customId" />
</xsd:simpleType>
</xsd:attribute>
...
</xsd:complexType>
Pero el campo customIds
, por alguna razón, se genera como List<String>
.
supongo, xsd:sequence
se puede utilizar en lugar de xsd:list
, pero SomeMessage
ya tiene un xsd:choice
, y por lo que yo entiendo, es ilegal tener xsd:sequence
en la misma declaración.
Gracias!
Gracias por su respuesta! En realidad, estoy tratando de conseguir no es un '' Lista, sino una '' Lista . Estoy usando JAXB 2.2. En cuanto a –
gregvonbautt
'xsd: sequence' y' xsd: choice', quiero decir lo siguiente: ' ... xsd: secuencia> xsd: complexType>' Para este tipo de declaración, que dice " 'secuencia' elemento no es válido, fuera de lugar, o se produce muy a menudo".. –
gregvonbautt
He actualizado para hacer frente a sus aclaraciones. Para tener una elección y una secuencia, es necesario un envoltorio secuencia de este modo: ... ... . Los atributos no se pueden colocar dentro de un grupo modelo (secuencia/elección/todo), viven fuera de él. Si desea utilizar elementos en lugar de un atributo basado en un xsd: lista, a continuación, se usaría la secuencia anidada en mi ejemplo para implementarlo. –