Comments (4)
Thanks for the report.
The problem appears to be that the root element, regardless of what it is, doesn't get a namespace. This could be fixed in the code generation by adding an XMLName
field. In your example, we'd generate something like
type SignatureType struct {
XMLName xml.Name `xml:"http://www.w3.org/2000/09/xmldsig# Signature"`
SignedInfo *SignedInfoType `xml:"http://www.w3.org/2000/09/xmldsig# SignedInfo"`
SignatureValue *SignatureValueType `xml:"http://www.w3.org/2000/09/xmldsig# SignatureValue"`
KeyInfo *KeyInfoType `xml:"http://www.w3.org/2000/09/xmldsig# KeyInfo,omitempty"`
Object []ObjectType `xml:"http://www.w3.org/2000/09/xmldsig# Object,omitempty"`
Id string `xml:"Id,attr,omitempty"`
}
from go-xml.
Actually, looking at this closer, the fact that the Signature
field in MetaDataType
does not have a namespace seems like a bug.
I recall a previous issue where the code failed to preserve namespaces when importing types across namespace boundaries (as your schema does), but I thought I fixed that. The fact that this schema does not declare a targetNamespace
may be relevant -- can you try adding a targetNamespace
declaration (the value doesn't matter) to the schema
element and try codegen again?
from go-xml.
Thanks for the fast respone.
So I changed the schema to
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:ex="urn:example"
targetNamespace="urn:example"
elementFormDefault="qualified">
<xs:import namespace="http://www.w3.org/2000/09/xmldsig#"
schemaLocation="xmldsig-core-schema.xsd" />
<xs:element name="MetaData" type="ex:MetaDataType" />
<xs:complexType name="MetaDataType">
<xs:sequence>
<xs:element ref="ds:Signature"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
and adjusted the namespace flag to
xsdgen -pkg=main -o=xsd/test.go -ns "urn:example" xsd/test.xsd xsd/xmldsig-core-schema.xsd
and in this case it seems to use the target namespace but in my case I would expect that Signautre would have the namespace of xmldsig?
type MetaDataType struct {
Signature *SignatureType `xml:"urn:example Signature"`
}
type SignatureType struct {
SignedInfo *SignedInfoType `xml:"http://www.w3.org/2000/09/xmldsig# SignedInfo"`
SignatureValue *SignatureValueType `xml:"http://www.w3.org/2000/09/xmldsig# SignatureValue"`
KeyInfo *KeyInfoType `xml:"http://www.w3.org/2000/09/xmldsig# KeyInfo,omitempty"`
Object []ObjectType `xml:"http://www.w3.org/2000/09/xmldsig# Object,omitempty"`
Id string `xml:"Id,attr,omitempty"`
}
the xml output is now
<Signature xmlns="urn:example">
Did I do something wrong? I am not sure if this was what you thought about.
I am not really an expert in XSD schemas... sorry.
What I forgot to mention is that I am using the omitempty-structs branch but I merged the latest master into it. I also tried it with the master with the same result.
from go-xml.
It looks like setting the targetNamespace did not fix the issue and this is a variation of #65 ; elements in another namespace mistakenly get labelled with the targetNamespace of the schema containing the reference.
from go-xml.
Related Issues (20)
- Add "Code generated ..." comment line automatically HOT 1
- Allow wsdlgen to take build tags HOT 2
- xsdgen: gen type "measResults": Unknown built-in type "anySimpleType" HOT 6
- Timezone is not considered in MarshalText method HOT 4
- Schema with restriction and base="xsd:dateTime" HOT 1
- Unable to unmarshal embedded xhtml HOT 3
- could not find base type anySimpleType in namespace http://www.w3.org/2001/XMLSchema HOT 3
- Cannot use non-namespaced (but included) types in schema HOT 4
- complexType DetailedHashSum: could not find type "BinaryDataType" in namespace http://service.ddex.net/xml/avs/avs for element DataType HOT 3
- complexType localElement: could not find type in namespace for attribute substitutionGroup HOT 11
- utf-8 name in xsd HOT 3
- Issue with `type="xsd:date" maxOccurs="unbounded"` HOT 1
- Failed to parse chardata. HOT 2
- Element ref not generating and linking types correctly. HOT 3
- question about walking the xsd HOT 3
- Does not generate code HOT 1
- Tests generated for `gentests/books/books_test.go` do not pass
- replace rule not working to create shared types
- aqwari.net is down HOT 1
- xsdgen problem with string
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from go-xml.