Skip to content

Commit b2fb01d

Browse files
committed
scope namespace and separate file generation to the xsd
use ItemMetadata instead of global configuration
1 parent 9938956 commit b2fb01d

3 files changed

Lines changed: 10 additions & 13 deletions

File tree

XmlSchemaClassGenerator.SourceGenerator.Tests/XmlSchemaClassGenerator.SourceGenerator.Tests.csproj

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,10 @@
2626
</ItemGroup>
2727

2828
<ItemGroup>
29-
<AdditionalFiles Include="Samples\simple_schema.xsd" />
29+
<AdditionalFiles Include="Samples\simple_schema.xsd"
30+
xscgen_SeparateFiles="true"
31+
xscgen_Namespace="Sample.Generated" />
3032
</ItemGroup>
31-
32-
<PropertyGroup>
33-
<xscgen_Namespace>Sample.Generated</xscgen_Namespace>
34-
<xscgen_SeparateFiles>true</xscgen_SeparateFiles>
35-
</PropertyGroup>
3633

3734
<ItemGroup>
3835
<Content Update="Samples\simple_schema.xsd">
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project>
22
<ItemGroup>
3-
<CompilerVisibleProperty Include="xscgen_Namespace" />
4-
<CompilerVisibleProperty Include="xscgen_SeparateFiles" />
3+
<CompilerVisibleItemMetadata Include="AdditionalFiles" MetadataName="xscgen_Namespace" />
4+
<CompilerVisibleItemMetadata Include="AdditionalFiles" MetadataName="xscgen_SeparateFiles" />
55
</ItemGroup>
66
</Project>

XmlSchemaClassGenerator.SourceGenerator/XsdSourceGenerator.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -116,13 +116,13 @@ public void Initialize(GeneratorInitializationContext context)
116116

117117
static IEnumerable<(AdditionalText SchemaFile, string Namespace)> GetConfigurations(GeneratorExecutionContext context)
118118
{
119-
if (!context.AnalyzerConfigOptions.GlobalOptions.TryGetValue("build_property.xscgen_namespace", out var @namespace))
120-
{
121-
@namespace = "Generated";
122-
}
123-
124119
foreach (AdditionalText file in context.AdditionalFiles)
125120
{
121+
if (!context.AnalyzerConfigOptions.GetOptions(file).TryGetValue("build_metadata.AdditionalFiles.xscgen_Namespace", out var @namespace))
122+
{
123+
@namespace = "Generated";
124+
}
125+
126126
if (Path.GetExtension(file.Path).Equals(".xsd", StringComparison.OrdinalIgnoreCase))
127127
{
128128
yield return (file, @namespace);

0 commit comments

Comments
 (0)