Open Toasterson opened 4 years ago
The error is here (note the extra space)
type struct {
Type Anon52 `xml:"type,attr"`
}
It seems similar to #99 . It appears to be trying to generate a complexType with an attribute named "type". There are a lot of those in the gist you provided. If I had to guess, I suspect it's this one, since there's no additional fields inside the complexType
:
<xs:element name="include_values">
<xs:complexType>
<xs:attribute name="type" use="required">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="constraints"/>
<xs:enumeration value="values"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
I'm not sure when I'll get a chance to look further, but could you try slimming down your xsd and see if you could pinpoint the type that causes this? Then maybe the -vvv
output from xsdgen could give us a clue (warning: it prints a lot of output).
I managed to get a working version with the alternate wool xgen and some heavy manual editing. Its at for a reference https://git.wegmueller.it/OpenCloud/opencloud/src/branch/master/smf/service_bundle.xsd.go
I tried to minify the file and see which type generates the error and it turns out pretty much every one does...
Example:
<xs:element name="doc_link">
<xs:complexType>
<xs:attribute name="name" use="required"/>
<xs:attribute name="uri" use="required"/>
</xs:complexType>
</xs:element>
read service_bundle-min.xsd
read xml.xsd
setting namespaces to ["http://www.w3.org/XML/1998/namespace"]
complexType doc_link: could not find type in namespace for attribute name
I only found -vv as option not -vvv is that still enough output?
Thank you very much for this hugely brilliant work.
I have a complex xsd file which triggers #86 and #96 but I can live with that as it is only one line I can insert myself. For documentation the offending line for those issues is here https://gist.github.com/Toasterson/5dd1db9c7862450c981ffd10f04d849b#file-service_bundle-xsd-L1339
However, it is also tripping somehow on the generated go code with:
All required xsd files are uploaded to a public gist. https://gist.github.com/Toasterson/5dd1db9c7862450c981ffd10f04d849b the original sources are open source.
I did convert this file from a dtd file with trang
If required I can also link the original dtd file.
Would love to use your tool to generate go types, as this allows me to write proper smf manifests on illumos systems.