Open Poehli opened 1 year ago
Hi,
The issue is that the oasis-dss-core-schema-v1.0-os.xsd defined a DocumentType
with:
<xs:complexType name="DocumentType">
<xs:complexContent>
<xs:extension base="dss:DocumentBaseType">
<xs:choice>
<xs:element name="InlineXML" type="dss:InlineXMLType" />
<xs:element name="Base64XML" type="xs:base64Binary" />
<xs:element name="EscapedXML" type="xs:string" />
<xs:element ref="dss:Base64Data" />
<xs:element ref="dss:AttachmentReference" />
</xs:choice>
</xs:extension>
</xs:complexContent>
</xs:complexType>
This declaration overrides the initial definition of the DocumentType
from the TR-03130eID-Server.xsd such as:
<simpleType name="DocumentType">
<restriction base="string">
<pattern value="[A-Z ]{2}" />
</restriction>
</simpleType>
As you managed to work around the issue, I think I won't be able to provider a better approach.
Let me know if you have an idea anyway.
Describe the bug A struct may generate a wrong data type for fields, based on its defined name in the xsd File.
To Reproduce
Download the official EID-WSDL from the German government (BSI Page or Direct download link)
Use the generator to generate the structure types, with following command options:
Inspect StructType/PersonalDataType and compare with the xsd file
Expected behavior StructType/PersonalDataType should contain a field $DocumentType from type string|null, but got \Some\Php\Namespace\DocumentType with InlineXML fields and other unexpected fields.
Additonal Context Changing the name in the TR-03130eID-Server.xsd file from tns:DocumentType to tns:IdentityDocumentType created the expected string|null type