Record Employee {XMLStructure = XMLStructureKind.sequence} EmpNo INT; LastName STRING; end <Employee> <EmpNo>10</EmpNo> <LastName>Smith</LastName> </Employee>
Record Employee{XMLStructure = XMLStructureKind.choice} ImmigrationStatus STRING?; YearsOfCitizenship INT?; end
<Employee> <ImmigrationStatus>A1</ImmigrationStatus> </Employee>
<Employee> <YearsOfCitizenship>20</YearsOfCitizenship> </Employee>
In this case, the XML string cannot include both kinds of elements.
If a record has the XMLStructure value "choice", each field must be nullable, as is indicated by the question marks in the example. The value of one field must be non-null, and the value of only one field can be non-null. If all of the fields in the input record are null or if more than one field is non-null, the XMLLib.convertToXML function issues a RuntimeException.
Record Employee{XMLStructure = XMLStructureKind.sequence} EmpNo EmpNumber; LastName STRING; end Record EmpNumber {XMLStructure = XMLStructureKind.simpleContent} department STRING {@XMLAttribute{}}; value INT; // any field name is acceptable here end <Employee> <EmpNo department="Sales">10</EmpNo> <LastName>Smith</LastName> </Employee>
The subordinate record, EmpNumber, can include any number of fields that are of type STRING and that have the @XMLAttribute property. The property indicates that a given field represents an attribute. The same subordinate record might have a field that lacks the @XMLAttribute property; that non-attribute field, if any, holds the value of the related element. The non-attribute field can have any name.
Record Employee {XMLStructure = XMLStructureKind.unordered} EmpNo INT; LastName STRING; end <Employee> <LastName>Jones</LastName> <EmpNo>20</EmpNo> </Employee> <Employee> <EmpNo>20</EmpNo> <LastName>Jones</LastName> </Employee>
Those values constitute the xmlStructureKind enumeration.