'Why does my XSD generated class hold attributes in List of Objects
I am trying to generate java classes from xsd. my xsd file is the following.
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Designations" type="DesignationsType"/>
<xs:complexType name="NameType">
<xs:sequence>
<xs:element type="xs:string" name="Name1" minOccurs="0"/>
<xs:element type="xs:string" name="Name2" minOccurs="0"/>
<xs:element type="xs:string" name="Name3" minOccurs="0"/>
<xs:element type="xs:string" name="Name4" minOccurs="0"/>
<xs:element type="xs:string" name="Name5" minOccurs="0"/>
<xs:element type="xs:string" name="Name6" minOccurs="0"/>
<xs:element name="NameType">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Primary Name"/>
<xs:enumeration value="Alias"/>
<xs:enumeration value="Primary Name Variation"/>
<xs:enumeration value="Primary name"/>
<xs:enumeration value="ALias"/>
<xs:enumeration value="Primary name variation"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="AliasStrength" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Good quality a.k.a"/>
<xs:enumeration value="Low quality a.k.a"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="NamesType">
<xs:sequence>
<xs:element type="NameType" name="Name" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="NonLatinNameType">
<xs:sequence>
<xs:element type="xs:string" name="NameNonLatinScript"/>
<xs:element type="xs:string" name="NonLatinScriptType" minOccurs="0"/>
<xs:element type="xs:string" name="NonLatinScriptLanguage" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="NonLatinNamesType">
<xs:sequence>
<xs:element type="NonLatinNameType" name="NonLatinName" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="SanctionsImposedIndicatorsType">
<xs:sequence>
<xs:element name="AssetFreeze">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ArmsEmbargo">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="false"/>
<xs:enumeration value="true"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="TargetedArmsEmbargo">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="false"/>
<xs:enumeration value="true"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CharteringOfShips">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="false"/>
<xs:enumeration value="true"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ClosureOfRepresentativeOffices">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="false"/>
<xs:enumeration value="true"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CrewServicingOfShipsAndAircraft">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="false"/>
<xs:enumeration value="true"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Deflag">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="false"/>
<xs:enumeration value="true"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="PreventionOfBusinessArrangements">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="false"/>
<xs:enumeration value="true"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ProhibitionOfPortEntry">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="false"/>
<xs:enumeration value="true"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="TravelBan">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="false"/>
<xs:enumeration value="true"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element type="xs:string" name="PreventionOfCharteringOfShips"/>
<xs:element type="xs:string" name="PreventionOfCharteringOfShipsAndAircraft"/>
<xs:element name="TechnicalAssistanceRelatedToAircraft">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="false"/>
<xs:enumeration value="true"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="AddressType">
<xs:sequence>
<xs:element type="xs:string" name="AddressLine1" minOccurs="0"/>
<xs:element type="xs:string" name="AddressLine2" minOccurs="0"/>
<xs:element type="xs:string" name="AddressLine3" minOccurs="0"/>
<xs:element type="xs:string" name="AddressLine4" minOccurs="0"/>
<xs:element type="xs:string" name="AddressLine5" minOccurs="0"/>
<xs:element type="xs:string" name="AddressLine6" minOccurs="0"/>
<xs:element type="xs:string" name="AddressPostalCode" minOccurs="0"/>
<xs:element type="xs:string" name="AddressCountry" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="AddressesType">
<xs:sequence>
<xs:element type="AddressType" name="Address" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PhoneNumbersType">
<xs:sequence>
<xs:element type="xs:string" name="PhoneNumber" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="EmailAddressesType">
<xs:sequence>
<xs:element type="xs:string" name="EmailAddress" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DesignationType">
<xs:sequence>
<xs:element type="xs:string" name="LastUpdated"/>
<xs:element type="xs:string" name="DateDesignated" minOccurs="0"/>
<xs:element type="xs:string" name="UniqueID"/>
<xs:element type="xs:string" name="OFSIGroupID" minOccurs="0"/>
<xs:element type="xs:string" name="UNReferenceNumber" minOccurs="0"/>
<xs:element type="NamesType" name="Names"/>
<xs:element type="NonLatinNamesType" name="NonLatinNames" minOccurs="0"/>
<xs:element type="TitlesType" name="Titles" minOccurs="0"/>
<xs:element type="xs:string" name="RegimeName"/>
<xs:element name="IndividualEntityShip">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Entity"/>
<xs:enumeration value="Individual"/>
<xs:enumeration value="Ship"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="DesignationSource">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="UN"/>
<xs:enumeration value="UK"/>
<xs:enumeration value="UK|UN"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element type="xs:string" name="SanctionsImposed" minOccurs="0"/>
<xs:element type="SanctionsImposedIndicatorsType" name="SanctionsImposedIndicators"/>
<xs:element type="xs:string" name="OtherInformation" minOccurs="0"/>
<xs:element type="xs:string" name="UKStatementofReasons" minOccurs="0"/>
<xs:element type="AddressesType" name="Addresses" minOccurs="0"/>
<xs:element type="PhoneNumbersType" name="PhoneNumbers" minOccurs="0"/>
<xs:element type="WebsitesType" name="Websites" minOccurs="0"/>
<xs:element type="EmailAddressesType" name="EmailAddresses" minOccurs="0"/>
<xs:element type="IndividualDetailsType" name="IndividualDetails" minOccurs="0"/>
<xs:element type="EntityDetailsType" name="EntityDetails" minOccurs="0"/>
<xs:element type="ShipDetailsType" name="ShipDetails" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TitlesType">
<xs:sequence>
<xs:element type="xs:string" name="Title" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DOBsType">
<xs:sequence>
<xs:element type="xs:string" name="DOB" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="NationalitiesType">
<xs:sequence>
<xs:element type="xs:string" name="Nationality" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PositionsType">
<xs:sequence>
<xs:element type="xs:string" name="Position" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="LocationType">
<xs:sequence>
<xs:element type="xs:string" name="TownOfBirth" minOccurs="0"/>
<xs:element type="xs:string" name="CountryOfBirth" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="BirthDetailsType">
<xs:sequence>
<xs:element type="LocationType" name="Location" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="IndividualType">
<xs:sequence>
<xs:element type="DOBsType" name="DOBs" minOccurs="0"/>
<xs:element type="PassportDetailsType" name="PassportDetails" minOccurs="0"/>
<xs:element type="NationalitiesType" name="Nationalities" minOccurs="0"/>
<xs:element type="NationalIdentifierDetailsType" name="NationalIdentifierDetails" minOccurs="0"/>
<xs:element type="PositionsType" name="Positions" minOccurs="0"/>
<xs:element type="GendersType" name="Genders" minOccurs="0"/>
<xs:element type="BirthDetailsType" name="BirthDetails" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="IndividualDetailsType">
<xs:sequence>
<xs:element type="IndividualType" name="Individual"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="NationalIdentifierType">
<xs:sequence>
<xs:element type="xs:string" name="NationalIdentifierNumber" minOccurs="0"/>
<xs:element type="xs:string" name="NationalIdentifierAdditionalInformation" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="NationalIdentifierDetailsType">
<xs:sequence>
<xs:element type="NationalIdentifierType" name="NationalIdentifier" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PassportType">
<xs:sequence>
<xs:element type="xs:string" name="PassportNumber" minOccurs="0"/>
<xs:element type="xs:string" name="PassportAdditionalInformation" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PassportDetailsType">
<xs:sequence>
<xs:element type="PassportType" name="Passport" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="GendersType">
<xs:sequence>
<xs:element name="Gender">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Male"/>
<xs:enumeration value="Female"/>
<xs:enumeration value="male"/>
<xs:enumeration value="female"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TypeOfEntitiesType">
<xs:sequence>
<xs:element type="xs:string" name="TypeOfEntity" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="EntityType">
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element type="TypeOfEntitiesType" name="TypeOfEntities"/>
<xs:element type="ParentCompaniesType" name="ParentCompanies"/>
<xs:element type="BusinessRegistrationNumbersType" name="BusinessRegistrationNumbers"/>
<xs:element type="SubsidiariesType" name="Subsidiaries"/>
</xs:choice>
</xs:complexType>
<xs:complexType name="EntityDetailsType">
<xs:sequence>
<xs:element type="EntityType" name="Entity"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="WebsitesType">
<xs:sequence>
<xs:element type="xs:string" name="Website" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ParentCompaniesType">
<xs:sequence>
<xs:element type="xs:string" name="ParentCompany" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="BusinessRegistrationNumbersType">
<xs:sequence>
<xs:element type="xs:string" name="BusinessRegistrationNumber" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="SubsidiariesType">
<xs:sequence>
<xs:element type="xs:string" name="Subsidiary" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="IMONumbersType">
<xs:sequence>
<xs:element type="xs:string" name="IMONumber"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="CurrentOwnerOperatorsType">
<xs:sequence>
<xs:element type="xs:string" name="CurrentOwnerOperator"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="CurrentBelievedFlagOfShipsType">
<xs:sequence>
<xs:element name="CurrentBelievedFlagOfShip">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Comoros"/>
<xs:enumeration value="St Kitts and Nevis"/>
<xs:enumeration value="North Korea"/>
<xs:enumeration value="Cambodia"/>
<xs:enumeration value="Palau"/>
<xs:enumeration value="Belize"/>
<xs:enumeration value="Togo"/>
<xs:enumeration value="Panama"/>
<xs:enumeration value="Dominica"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PreviousFlagsType">
<xs:sequence>
<xs:element type="xs:string" name="PreviousFlag" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TypeOfShipDetailsType">
<xs:sequence>
<xs:element name="TypeOfShip" maxOccurs="unbounded" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Bulk Carrier"/>
<xs:enumeration value="General Cargo / Multi Purpose"/>
<xs:enumeration value="Oil Tanker"/>
<xs:enumeration value="Chemical Carrier"/>
<xs:enumeration value="Oil tanker"/>
<xs:enumeration value="Other"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TonnageOfShipDetailsType">
<xs:sequence>
<xs:element type="xs:string" name="TonnageOfShip"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="LengthOfShipDetailsType">
<xs:sequence>
<xs:element type="xs:string" name="LengthOfShip"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="YearsBuiltType">
<xs:sequence>
<xs:element type="xs:string" name="YearBuilt"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ShipType">
<xs:sequence>
<xs:element type="IMONumbersType" name="IMONumbers"/>
<xs:element type="CurrentOwnerOperatorsType" name="CurrentOwnerOperators" minOccurs="0"/>
<xs:element type="CurrentBelievedFlagOfShipsType" name="CurrentBelievedFlagOfShips" minOccurs="0"/>
<xs:element type="PreviousFlagsType" name="PreviousFlags" minOccurs="0"/>
<xs:element type="TypeOfShipDetailsType" name="TypeOfShipDetails" minOccurs="0"/>
<xs:element type="TonnageOfShipDetailsType" name="TonnageOfShipDetails" minOccurs="0"/>
<xs:element type="LengthOfShipDetailsType" name="LengthOfShipDetails" minOccurs="0"/>
<xs:element type="YearsBuiltType" name="YearsBuilt" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ShipDetailsType">
<xs:sequence>
<xs:element type="ShipType" name="Ship"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DesignationsType">
<xs:sequence>
<xs:element type="xs:string" name="DateGenerated"/>
<xs:element type="DesignationType" name="Designation" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
the problem is when I generate the java classes EntityType Class generated as following.
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "EntityType", propOrder = {
"typeOfEntitiesOrParentCompaniesOrBusinessRegistrationNumbers"
})
public class EntityType {
@XmlElements({
@XmlElement(name = "TypeOfEntities", type = TypeOfEntitiesType.class),
@XmlElement(name = "ParentCompanies", type = ParentCompaniesType.class),
@XmlElement(name = "BusinessRegistrationNumbers", type = BusinessRegistrationNumbersType.class),
@XmlElement(name = "Subsidiaries", type = SubsidiariesType.class)
})
protected List<Object> typeOfEntitiesOrParentCompaniesOrBusinessRegistrationNumbers;
typeOfEntitiesOrParentCompaniesOrBusinessRegistrationNumbers property.
public List<Object> getTypeOfEntitiesOrParentCompaniesOrBusinessRegistrationNumbers() {
if (typeOfEntitiesOrParentCompaniesOrBusinessRegistrationNumbers == null) {
typeOfEntitiesOrParentCompaniesOrBusinessRegistrationNumbers = new ArrayList<Object>();
}
return this.typeOfEntitiesOrParentCompaniesOrBusinessRegistrationNumbers;
}
}
And I cant read the attributes. Why does it generated as List<Object> with or's instead of for example
TypeOfEntitys typeOfEntity;
just like other classes. That are generated.
and here is the link of xml that I am generating my xsd.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
