Skip to content

incorrect code generated by the xsd conversion

Submitted by Kristof Szabados

Link to original bug (#537169)

Description

based on this code:

		`<simpleType name="e21unnamed">`
		`<union>`				
			`<simpleType>`
				<restriction base="float"/>
			`</simpleType>`
			`<simpleType>`
				<restriction base="integer"/>
			`</simpleType>`
			`<simpleType>`
				<restriction base="string"/>
			`</simpleType>`
		`</union>`
	`</simpleType>`
	
		`<element name=" e22">`
		`<simpleType>`
			<restriction base="ns76:e21unnamed">
				<enumeration value="20"/>
				<enumeration value="50.0"/>
				<enumeration value="small-1"/>
			`</restriction>`
		`</simpleType>`
	`</element>`

according to the standard the xsdconversion should generate a record something like this to element e22:

type record E22 {	
	  enumerated {alt_, alt_1, alt_2} xsiType optional,
	  enumerated {x20, x50_0, small_1} content
	}
	with {...}

But instead this code is generated:

type E21unnamed E22 (
                {alt_2:="small-1"},
                {alt_:=20.000000},
                {alt_:=50.000000}
)
with {
  variant "name as ' e22'";
  variant "element";
};

Version: 6.4.0

Edited by Adam Knapp