Open digitaldias opened 7 months ago
I'm not sure I understand the issue. For each distinct XML Schema type there should be only one corresponding C# class that is being generated. Where does the duplication occur in your use case?
I may be attempting to convert too much at once:
var xsdFiles = XsdFileFinder.FindXsdFilesWithNamespaces(rootFolder);
Console.WriteLine(new string('-', 120));
var namespaceMappings = new Dictionary<NamespaceKey, string>();
foreach (var xsdFile in xsdFiles)
{
var key = new NamespaceKey(xsdFile.XsdNamespace);
if (!namespaceMappings.ContainsKey(key))
{
namespaceMappings.Add(key, xsdFile.CSharpNamespace);
}
}
var NsProvider = namespaceMappings
.ToNamespaceProvider(new GeneratorConfiguration { NamespacePrefix = string.Empty }
.NamespaceProvider.GenerateNamespace);
When I attempt to give the entire list to the generator, it fails profusely. with variants of The element has already been declared
errors.
If I run it in a foreach loop, all is good, but common types are repeated across the board.
Try passing only the XSD file to the generator that contains the root element resp. the elements that you are interested in de/serializing.
I have a full set of XSD's, some which declare common types that are used in others. I don't know how I can run this tool (CLI or Nuget) to only generate the common types once. Our xsd's include:
Etc. it's a whole tree of different standards for these doc types.
An option to "do not include external xsd's" would help me, as I can then just add the correct "using" statements post creation. Is this possible to achieve? Concrete example:
MyBusiness.Standards.Standard1.v1_1.Common
MyBusiness.Standards.Standard1.v1_1.Orders
but with an instruction to include a using statement for the first namespace.Today, it reads and includes referenced xsd files and generates all the common types for every type that I have. A command line example could be:
Doable?