Initial commit
This commit is contained in:
commit
f2c7ec0d9a
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
bin/
|
||||
obj/
|
||||
/packages/
|
||||
riderModule.iml
|
||||
/_ReSharper.Caches/
|
||||
13
.idea/.idea.XSDVisualiser/.idea/.gitignore
generated
vendored
Normal file
13
.idea/.idea.XSDVisualiser/.idea/.gitignore
generated
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Rider ignored files
|
||||
/modules.xml
|
||||
/.idea.XSDVisualiser.iml
|
||||
/projectSettingsUpdater.xml
|
||||
/contentModel.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
||||
4
.idea/.idea.XSDVisualiser/.idea/encodings.xml
generated
Normal file
4
.idea/.idea.XSDVisualiser/.idea/encodings.xml
generated
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
|
||||
</project>
|
||||
8
.idea/.idea.XSDVisualiser/.idea/indexLayout.xml
generated
Normal file
8
.idea/.idea.XSDVisualiser/.idea/indexLayout.xml
generated
Normal file
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="UserContentModel">
|
||||
<attachedFolders />
|
||||
<explicitIncludes />
|
||||
<explicitExcludes />
|
||||
</component>
|
||||
</project>
|
||||
6
.idea/.idea.XSDVisualiser/.idea/vcs.xml
generated
Normal file
6
.idea/.idea.XSDVisualiser/.idea/vcs.xml
generated
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
16
XSDVisualiser.sln
Normal file
16
XSDVisualiser.sln
Normal file
@ -0,0 +1,16 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XSDVisualiser", "XSDVisualiser\XSDVisualiser.csproj", "{A42F0483-69BE-44FC-8147-DA3466375051}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{A42F0483-69BE-44FC-8147-DA3466375051}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{A42F0483-69BE-44FC-8147-DA3466375051}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{A42F0483-69BE-44FC-8147-DA3466375051}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{A42F0483-69BE-44FC-8147-DA3466375051}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
153
XSDVisualiser/Models/XsdSchemaModel.cs
Normal file
153
XSDVisualiser/Models/XsdSchemaModel.cs
Normal file
@ -0,0 +1,153 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace XSDVisualiser.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// Root of the parsed XSD representation.
|
||||
/// </summary>
|
||||
[XmlRoot("SchemaModel")]
|
||||
public class SchemaModel
|
||||
{
|
||||
[XmlAttribute]
|
||||
public string? TargetNamespace { get; set; }
|
||||
|
||||
[XmlArray("RootElements")]
|
||||
[XmlArrayItem("Element")]
|
||||
public List<SchemaNode> RootElements { get; set; } = new();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents an element or complex content node in the schema.
|
||||
/// </summary>
|
||||
public class SchemaNode
|
||||
{
|
||||
[XmlAttribute]
|
||||
public string? Name { get; set; }
|
||||
|
||||
[XmlAttribute]
|
||||
public string? Namespace { get; set; }
|
||||
|
||||
[XmlAttribute]
|
||||
public string? TypeName { get; set; }
|
||||
|
||||
[XmlAttribute]
|
||||
public string? BuiltInType { get; set; }
|
||||
|
||||
[XmlAttribute]
|
||||
public bool IsNillable { get; set; }
|
||||
|
||||
[XmlElement]
|
||||
public Occurs Cardinality { get; set; } = new();
|
||||
|
||||
[XmlElement]
|
||||
public ConstraintSet? Constraints { get; set; }
|
||||
|
||||
[XmlArray("Attributes")]
|
||||
[XmlArrayItem("Attribute")]
|
||||
public List<AttributeInfo> Attributes { get; set; } = new();
|
||||
|
||||
[XmlArray("Children")]
|
||||
[XmlArrayItem("Element")]
|
||||
public List<SchemaNode> Children { get; set; } = new();
|
||||
|
||||
[XmlAttribute]
|
||||
public string? ContentModel { get; set; } // sequence | choice | all | simple
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Min/Max occurrences.
|
||||
/// </summary>
|
||||
public class Occurs
|
||||
{
|
||||
[XmlAttribute]
|
||||
public decimal Min { get; set; } = 1;
|
||||
|
||||
/// <summary>
|
||||
/// If MaxIsUnbounded is true, Max is ignored.
|
||||
/// </summary>
|
||||
[XmlAttribute]
|
||||
public decimal Max { get; set; } = 1;
|
||||
|
||||
[XmlAttribute]
|
||||
public bool MaxIsUnbounded { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Attribute definition extracted from XSD.
|
||||
/// </summary>
|
||||
public class AttributeInfo
|
||||
{
|
||||
[XmlAttribute]
|
||||
public string? Name { get; set; }
|
||||
|
||||
[XmlAttribute]
|
||||
public string? Namespace { get; set; }
|
||||
|
||||
[XmlAttribute]
|
||||
public string? Use { get; set; } // optional | required | prohibited
|
||||
|
||||
[XmlAttribute]
|
||||
public string? TypeName { get; set; }
|
||||
|
||||
[XmlAttribute]
|
||||
public string? BuiltInType { get; set; }
|
||||
|
||||
[XmlElement]
|
||||
public ConstraintSet? Constraints { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// SimpleType constraints (facets).
|
||||
/// </summary>
|
||||
public class ConstraintSet
|
||||
{
|
||||
[XmlAttribute]
|
||||
public string? BaseTypeName { get; set; }
|
||||
|
||||
[XmlArray("Enumerations")]
|
||||
[XmlArrayItem("Value")]
|
||||
public List<string> Enumerations { get; set; } = new();
|
||||
|
||||
[XmlArray("Patterns")]
|
||||
[XmlArrayItem("Regex")]
|
||||
public List<string> Patterns { get; set; } = new();
|
||||
|
||||
[XmlElement]
|
||||
public NumericBounds? Numeric { get; set; }
|
||||
|
||||
[XmlElement]
|
||||
public LengthBounds? Length { get; set; }
|
||||
}
|
||||
|
||||
public class NumericBounds
|
||||
{
|
||||
[XmlAttribute]
|
||||
public string? MinInclusive { get; set; }
|
||||
[XmlAttribute]
|
||||
public string? MaxInclusive { get; set; }
|
||||
[XmlAttribute]
|
||||
public string? MinExclusive { get; set; }
|
||||
[XmlAttribute]
|
||||
public string? MaxExclusive { get; set; }
|
||||
}
|
||||
|
||||
public class LengthBounds
|
||||
{
|
||||
[XmlAttribute]
|
||||
public int Length { get; set; }
|
||||
[XmlIgnore]
|
||||
public bool LengthSpecified { get; set; }
|
||||
|
||||
[XmlAttribute]
|
||||
public int MinLength { get; set; }
|
||||
[XmlIgnore]
|
||||
public bool MinLengthSpecified { get; set; }
|
||||
|
||||
[XmlAttribute]
|
||||
public int MaxLength { get; set; }
|
||||
[XmlIgnore]
|
||||
public bool MaxLengthSpecified { get; set; }
|
||||
}
|
||||
}
|
||||
351
XSDVisualiser/Parsing/XsdSchemaParser.cs
Normal file
351
XSDVisualiser/Parsing/XsdSchemaParser.cs
Normal file
@ -0,0 +1,351 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Xml;
|
||||
using System.Xml.Schema;
|
||||
using XSDVisualiser.Models;
|
||||
|
||||
namespace XSDVisualiser.Parsing
|
||||
{
|
||||
public class XsdSchemaParser
|
||||
{
|
||||
private readonly XmlSchemaSet _set = new();
|
||||
|
||||
public SchemaModel Parse(string xsdPath)
|
||||
{
|
||||
_set.XmlResolver = new XmlUrlResolver();
|
||||
using var reader = XmlReader.Create(xsdPath, new XmlReaderSettings { DtdProcessing = DtdProcessing.Ignore });
|
||||
var schema = XmlSchema.Read(reader, ValidationCallback);
|
||||
_set.Add(schema);
|
||||
_set.CompilationSettings = new XmlSchemaCompilationSettings { EnableUpaCheck = true };
|
||||
_set.Compile();
|
||||
|
||||
var model = new SchemaModel
|
||||
{
|
||||
TargetNamespace = schema.TargetNamespace
|
||||
};
|
||||
|
||||
foreach (XmlSchemaElement globalEl in _set.Schemas().Cast<XmlSchema>()
|
||||
.SelectMany(s => s.Elements.Values.Cast<XmlSchemaElement>()))
|
||||
{
|
||||
var node = BuildNodeForElement(globalEl, parentContentModel: null);
|
||||
model.RootElements.Add(node);
|
||||
}
|
||||
|
||||
return model;
|
||||
}
|
||||
|
||||
private void ValidationCallback(object? sender, ValidationEventArgs e)
|
||||
{
|
||||
// For now, we do not throw; we capture compiled info best-effort.
|
||||
// Console.Error.WriteLine($"[XSD Validation {e.Severity}] {e.Message}");
|
||||
}
|
||||
|
||||
private SchemaNode BuildNodeForElement(XmlSchemaElement element, string? parentContentModel)
|
||||
{
|
||||
var node = new SchemaNode
|
||||
{
|
||||
Name = element.Name ?? element.RefName.Name,
|
||||
Namespace = (element.QualifiedName.IsEmpty ? element.RefName : element.QualifiedName).Namespace,
|
||||
IsNillable = element.IsNillable,
|
||||
Cardinality = new Occurs
|
||||
{
|
||||
Min = element.MinOccurs,
|
||||
Max = element.MaxOccurs,
|
||||
MaxIsUnbounded = element.MaxOccursString == "unbounded"
|
||||
},
|
||||
ContentModel = parentContentModel
|
||||
};
|
||||
|
||||
var type = ResolveElementType(element);
|
||||
if (type != null)
|
||||
{
|
||||
node.TypeName = GetQualifiedTypeName(type);
|
||||
if (type.Datatype != null)
|
||||
{
|
||||
node.BuiltInType = type.Datatype.TypeCode.ToString();
|
||||
}
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case XmlSchemaComplexType ct:
|
||||
HandleComplexType(node, ct);
|
||||
break;
|
||||
case XmlSchemaSimpleType st:
|
||||
node.ContentModel = "simple";
|
||||
node.Constraints = ExtractConstraints(st);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return node;
|
||||
}
|
||||
|
||||
private static string? GetQualifiedTypeName(XmlSchemaType type)
|
||||
{
|
||||
if (!type.QualifiedName.IsEmpty) return type.QualifiedName.ToString();
|
||||
return type.BaseXmlSchemaType != null && !type.BaseXmlSchemaType.QualifiedName.IsEmpty
|
||||
? type.BaseXmlSchemaType.QualifiedName.ToString()
|
||||
: type.Name;
|
||||
}
|
||||
|
||||
private XmlSchemaType? ResolveElementType(XmlSchemaElement el)
|
||||
{
|
||||
if (el.ElementSchemaType != null) return el.ElementSchemaType;
|
||||
if (!el.SchemaTypeName.IsEmpty)
|
||||
{
|
||||
return _set.GlobalTypes[el.SchemaTypeName] as XmlSchemaType;
|
||||
}
|
||||
if (el.SchemaType != null) return el.SchemaType;
|
||||
return null;
|
||||
}
|
||||
|
||||
private void HandleComplexType(SchemaNode node, XmlSchemaComplexType ct)
|
||||
{
|
||||
// Attributes
|
||||
foreach (XmlSchemaAttribute attr in ct.AttributeUses.Values.OfType<XmlSchemaAttribute>())
|
||||
{
|
||||
node.Attributes.Add(ExtractAttribute(attr));
|
||||
}
|
||||
|
||||
// Content model
|
||||
if (ct.ContentTypeParticle is XmlSchemaGroupBase group)
|
||||
{
|
||||
var content = group switch
|
||||
{
|
||||
XmlSchemaSequence => "sequence",
|
||||
XmlSchemaChoice => "choice",
|
||||
XmlSchemaAll => "all",
|
||||
_ => "group"
|
||||
};
|
||||
node.ContentModel = content;
|
||||
|
||||
foreach (var item in group.Items)
|
||||
{
|
||||
switch (item)
|
||||
{
|
||||
case XmlSchemaElement childEl:
|
||||
node.Children.Add(BuildNodeForElement(childEl, content));
|
||||
break;
|
||||
case XmlSchemaGroupBase nestedGroup:
|
||||
// Flatten nested groups by introducing synthetic nodes
|
||||
var synthetic = new SchemaNode
|
||||
{
|
||||
Name = "(group)",
|
||||
Namespace = node.Namespace,
|
||||
ContentModel = nestedGroup switch
|
||||
{
|
||||
XmlSchemaSequence => "sequence",
|
||||
XmlSchemaChoice => "choice",
|
||||
XmlSchemaAll => "all",
|
||||
_ => "group"
|
||||
},
|
||||
Cardinality = new Occurs { Min = nestedGroup.MinOccurs, Max = nestedGroup.MaxOccurs, MaxIsUnbounded = nestedGroup.MaxOccursString == "unbounded" }
|
||||
};
|
||||
foreach (var nestedItem in nestedGroup.Items)
|
||||
{
|
||||
if (nestedItem is XmlSchemaElement ngChild)
|
||||
{
|
||||
synthetic.Children.Add(BuildNodeForElement(ngChild, synthetic.ContentModel));
|
||||
}
|
||||
}
|
||||
node.Children.Add(synthetic);
|
||||
break;
|
||||
// Skip other particles for now
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (ct.ContentType == XmlSchemaContentType.TextOnly && ct.ContentModel is XmlSchemaSimpleContent simpleContent)
|
||||
{
|
||||
node.ContentModel = "simple";
|
||||
if (simpleContent.Content is XmlSchemaSimpleContentExtension ext)
|
||||
{
|
||||
var baseType = ResolveType(ext.BaseTypeName);
|
||||
if (baseType is XmlSchemaSimpleType st)
|
||||
{
|
||||
node.Constraints = ExtractConstraints(st);
|
||||
node.TypeName ??= GetQualifiedTypeName(st);
|
||||
node.BuiltInType ??= st.Datatype?.TypeCode.ToString();
|
||||
}
|
||||
|
||||
foreach (XmlSchemaAttribute attr in ext.Attributes.OfType<XmlSchemaAttribute>())
|
||||
{
|
||||
node.Attributes.Add(ExtractAttribute(attr));
|
||||
}
|
||||
}
|
||||
else if (simpleContent.Content is XmlSchemaSimpleContentRestriction res)
|
||||
{
|
||||
var baseType = ResolveType(res.BaseTypeName);
|
||||
if (baseType is XmlSchemaSimpleType st)
|
||||
{
|
||||
var cons = ExtractConstraints(st);
|
||||
MergeFacets(cons, res.Facets);
|
||||
node.Constraints = cons;
|
||||
node.TypeName ??= GetQualifiedTypeName(st);
|
||||
node.BuiltInType ??= st.Datatype?.TypeCode.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private XmlSchemaType? ResolveType(XmlQualifiedName qname)
|
||||
{
|
||||
if (qname.IsEmpty) return null;
|
||||
return _set.GlobalTypes[qname] as XmlSchemaType;
|
||||
}
|
||||
|
||||
private AttributeInfo ExtractAttribute(XmlSchemaAttribute attr)
|
||||
{
|
||||
var info = new AttributeInfo
|
||||
{
|
||||
Name = attr.Name ?? attr.RefName.Name,
|
||||
Namespace = (attr.QualifiedName.IsEmpty ? attr.RefName : attr.QualifiedName).Namespace,
|
||||
Use = attr.Use.ToString()
|
||||
};
|
||||
|
||||
XmlSchemaSimpleType? st = null;
|
||||
if (attr.AttributeSchemaType != null) st = attr.AttributeSchemaType as XmlSchemaSimpleType;
|
||||
else if (!attr.SchemaTypeName.IsEmpty) st = ResolveType(attr.SchemaTypeName) as XmlSchemaSimpleType;
|
||||
else if (attr.SchemaType != null) st = attr.SchemaType;
|
||||
|
||||
if (st != null)
|
||||
{
|
||||
info.TypeName = GetQualifiedTypeName(st);
|
||||
info.BuiltInType = st.Datatype?.TypeCode.ToString();
|
||||
info.Constraints = ExtractConstraints(st);
|
||||
}
|
||||
|
||||
return info;
|
||||
}
|
||||
|
||||
private ConstraintSet? ExtractConstraints(XmlSchemaSimpleType st)
|
||||
{
|
||||
var cons = new ConstraintSet
|
||||
{
|
||||
BaseTypeName = GetQualifiedTypeName(st.BaseXmlSchemaType)
|
||||
};
|
||||
|
||||
if (st.Content is XmlSchemaSimpleTypeRestriction restr)
|
||||
{
|
||||
MergeFacets(cons, restr.Facets);
|
||||
}
|
||||
else if (st.Content is XmlSchemaSimpleTypeList list)
|
||||
{
|
||||
cons.Patterns.Add("(list)");
|
||||
if (!list.ItemTypeName.IsEmpty)
|
||||
{
|
||||
var baseType = ResolveType(list.ItemTypeName);
|
||||
if (baseType is XmlSchemaSimpleType itemSt)
|
||||
{
|
||||
var sub = ExtractConstraints(itemSt);
|
||||
Merge(cons, sub);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (st.Content is XmlSchemaSimpleTypeUnion union)
|
||||
{
|
||||
cons.Patterns.Add("(union)");
|
||||
foreach (var memberType in union.BaseMemberTypes)
|
||||
{
|
||||
if (memberType is XmlSchemaSimpleType mst)
|
||||
{
|
||||
var sub = ExtractConstraints(mst);
|
||||
Merge(cons, sub);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return cons;
|
||||
}
|
||||
|
||||
private static void Merge(ConstraintSet target, ConstraintSet? source)
|
||||
{
|
||||
if (source == null) return;
|
||||
foreach (var e in source.Enumerations) if (!target.Enumerations.Contains(e)) target.Enumerations.Add(e);
|
||||
foreach (var p in source.Patterns) if (!target.Patterns.Contains(p)) target.Patterns.Add(p);
|
||||
if (source.Numeric != null)
|
||||
{
|
||||
target.Numeric ??= new NumericBounds();
|
||||
target.Numeric.MinInclusive ??= source.Numeric.MinInclusive;
|
||||
target.Numeric.MaxInclusive ??= source.Numeric.MaxInclusive;
|
||||
target.Numeric.MinExclusive ??= source.Numeric.MinExclusive;
|
||||
target.Numeric.MaxExclusive ??= source.Numeric.MaxExclusive;
|
||||
}
|
||||
if (source.Length != null)
|
||||
{
|
||||
target.Length ??= new LengthBounds();
|
||||
if (source.Length.LengthSpecified && !target.Length.LengthSpecified)
|
||||
{
|
||||
target.Length.Length = source.Length.Length;
|
||||
target.Length.LengthSpecified = true;
|
||||
}
|
||||
if (source.Length.MinLengthSpecified && !target.Length.MinLengthSpecified)
|
||||
{
|
||||
target.Length.MinLength = source.Length.MinLength;
|
||||
target.Length.MinLengthSpecified = true;
|
||||
}
|
||||
if (source.Length.MaxLengthSpecified && !target.Length.MaxLengthSpecified)
|
||||
{
|
||||
target.Length.MaxLength = source.Length.MaxLength;
|
||||
target.Length.MaxLengthSpecified = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void MergeFacets(ConstraintSet cons, XmlSchemaObjectCollection facets)
|
||||
{
|
||||
foreach (var f in facets)
|
||||
{
|
||||
switch (f)
|
||||
{
|
||||
case XmlSchemaEnumerationFacet enumFacet:
|
||||
cons.Enumerations.Add(enumFacet.Value);
|
||||
break;
|
||||
case XmlSchemaPatternFacet patternFacet:
|
||||
cons.Patterns.Add(patternFacet.Value);
|
||||
break;
|
||||
case XmlSchemaMinInclusiveFacet minInc:
|
||||
cons.Numeric ??= new NumericBounds();
|
||||
cons.Numeric.MinInclusive = minInc.Value;
|
||||
break;
|
||||
case XmlSchemaMaxInclusiveFacet maxInc:
|
||||
cons.Numeric ??= new NumericBounds();
|
||||
cons.Numeric.MaxInclusive = maxInc.Value;
|
||||
break;
|
||||
case XmlSchemaMinExclusiveFacet minEx:
|
||||
cons.Numeric ??= new NumericBounds();
|
||||
cons.Numeric.MinExclusive = minEx.Value;
|
||||
break;
|
||||
case XmlSchemaMaxExclusiveFacet maxEx:
|
||||
cons.Numeric ??= new NumericBounds();
|
||||
cons.Numeric.MaxExclusive = maxEx.Value;
|
||||
break;
|
||||
case XmlSchemaLengthFacet len:
|
||||
cons.Length ??= new LengthBounds();
|
||||
if (int.TryParse(len.Value, out var l))
|
||||
{
|
||||
cons.Length.Length = l;
|
||||
cons.Length.LengthSpecified = true;
|
||||
}
|
||||
break;
|
||||
case XmlSchemaMinLengthFacet minLen:
|
||||
cons.Length ??= new LengthBounds();
|
||||
if (int.TryParse(minLen.Value, out var ml))
|
||||
{
|
||||
cons.Length.MinLength = ml;
|
||||
cons.Length.MinLengthSpecified = true;
|
||||
}
|
||||
break;
|
||||
case XmlSchemaMaxLengthFacet maxLen:
|
||||
cons.Length ??= new LengthBounds();
|
||||
if (int.TryParse(maxLen.Value, out var xl))
|
||||
{
|
||||
cons.Length.MaxLength = xl;
|
||||
cons.Length.MaxLengthSpecified = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
88
XSDVisualiser/Program.cs
Normal file
88
XSDVisualiser/Program.cs
Normal file
@ -0,0 +1,88 @@
|
||||
using XSDVisualiser.Parsing;
|
||||
using XSDVisualiser.Utils;
|
||||
|
||||
/*
|
||||
if (args.Length == 0 || args[0] is "-h" or "--help")
|
||||
{
|
||||
PrintHelp();
|
||||
return;
|
||||
}
|
||||
var inputPath = args[0];
|
||||
*/
|
||||
|
||||
const string inputPath = "/home/frederik/Work/XSDVisualiser/XSDVisualiser/Rescources/SF2900/SF2900_EP_MS1-2/DistributionServiceMsgV2.xsd";
|
||||
|
||||
if (!File.Exists(inputPath))
|
||||
{
|
||||
Console.Error.WriteLine($"Input XSD file not found: {inputPath}");
|
||||
Environment.Exit(1);
|
||||
}
|
||||
|
||||
var format = "json";
|
||||
string? outPath = null;
|
||||
for (int i = 1; i < args.Length; i++)
|
||||
{
|
||||
switch (args[i])
|
||||
{
|
||||
case "--format":
|
||||
if (i + 1 < args.Length)
|
||||
{
|
||||
format = args[++i].ToLowerInvariant();
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.Error.WriteLine("--format requires a value: xml or json");
|
||||
Environment.Exit(2);
|
||||
}
|
||||
break;
|
||||
case "--out":
|
||||
if (i + 1 < args.Length)
|
||||
{
|
||||
outPath = args[++i];
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.Error.WriteLine("--out requires a file path");
|
||||
Environment.Exit(2);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var parser = new XsdSchemaParser();
|
||||
var model = parser.Parse(inputPath);
|
||||
|
||||
string output = format switch
|
||||
{
|
||||
"json" => Serialization.ToJson(model),
|
||||
_ => Serialization.ToXml(model)
|
||||
};
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(outPath))
|
||||
{
|
||||
File.WriteAllText(outPath!, output);
|
||||
Console.WriteLine($"Wrote {format.ToUpperInvariant()} to {Path.GetFullPath(outPath!)}");
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine(output);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.Error.WriteLine("Error: " + ex.ToString());
|
||||
if (ex.InnerException != null)
|
||||
{
|
||||
Console.Error.WriteLine("Inner: " + ex.InnerException.ToString());
|
||||
}
|
||||
Environment.Exit(3);
|
||||
}
|
||||
|
||||
static void PrintHelp()
|
||||
{
|
||||
Console.WriteLine("XSDVisualiser - Parse an XSD and emit a structural model with types, constraints, and cardinality");
|
||||
Console.WriteLine("Usage: XSDVisualiser <schema.xsd> [--format xml|json] [--out outputFile]");
|
||||
Console.WriteLine("Default format is xml; if --out is omitted the output is printed to stdout.");
|
||||
}
|
||||
86
XSDVisualiser/Rescources/SF2900/DistributionServiceMsg.xsd
Normal file
86
XSDVisualiser/Rescources/SF2900/DistributionServiceMsg.xsd
Normal file
@ -0,0 +1,86 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsd:schema xmlns:tns="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/3/types"
|
||||
targetNamespace="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/3/types"
|
||||
xmlns:callctx="http://serviceplatformen.dk/xml/schemas/CallContext/1/"
|
||||
xmlns:authctx="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/"
|
||||
xmlns:dsv2="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/2/types"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified"
|
||||
version="1.0">
|
||||
|
||||
<!-- Import external entities -->
|
||||
<xsd:import namespace="http://serviceplatformen.dk/xml/schemas/CallContext/1/"
|
||||
schemaLocation="sp/CallContext_1.xsd"/>
|
||||
<xsd:import namespace="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/"
|
||||
schemaLocation="sp/AuthorityContext_1.xsd"/>
|
||||
<xsd:import namespace="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/2/types"
|
||||
schemaLocation="SF2900_EP_MS1-2/DistributionServiceMsgV2.xsd"/>
|
||||
|
||||
<xsd:include schemaLocation="xsd/DistributionServiceTypes.xsd"/>
|
||||
|
||||
<!-- Elements used for messages in wsdl file -->
|
||||
<xsd:element name="FordelingsobjektAfsendRequest" type="tns:FordelingsobjektAfsendRequestType"/>
|
||||
<xsd:element name="FordelingsobjektAfsendResponse" type="tns:FordelingsobjektAfsendResponseType"/>
|
||||
<xsd:element name="FordelingskvitteringModtagRequest" type="tns:FordelingskvitteringModtagRequestType"/>
|
||||
<xsd:element name="FordelingskvitteringModtagResponse" type="tns:FordelingskvitteringModtagResponseType"/>
|
||||
<xsd:element name="FordelingsmodtagerListRequest" type="tns:FordelingsmodtagerListRequestType"/>
|
||||
<xsd:element name="FordelingsmodtagerListResponse" type="tns:FordelingsmodtagerListResponseType"/>
|
||||
<xsd:element name="FordelingsmodtagerValiderRequest" type="tns:FordelingsmodtagerValiderRequestType"/>
|
||||
<xsd:element name="FordelingsmodtagerValiderResponse" type="tns:FordelingsmodtagerValiderResponseType"/>
|
||||
|
||||
<!-- Complex types defining he request and reposnse elements for services -->
|
||||
<xsd:complexType name="FordelingsobjektAfsendRequestType">
|
||||
<xsd:sequence>
|
||||
<xsd:element ref="callctx:CallContext" minOccurs="0" maxOccurs="1"/>
|
||||
<xsd:element ref="authctx:AuthorityContext" minOccurs="0" maxOccurs="1"/>
|
||||
<xsd:element name="anmodning" type="dsv2:anmodRequestType" minOccurs="1" maxOccurs="1"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="FordelingsobjektAfsendResponseType">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="ForretningsKvittering" type="dsv2:ForretningskvitteringType" minOccurs="1" maxOccurs="1"/>
|
||||
<xsd:element name="DistributionContext" type="dsv2:DistributionContextType" minOccurs="1" maxOccurs="1"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="FordelingskvitteringModtagRequestType">
|
||||
<xsd:sequence>
|
||||
<xsd:element ref="callctx:CallContext" minOccurs="0" maxOccurs="1"/>
|
||||
<xsd:element ref="authctx:AuthorityContext" minOccurs="0" maxOccurs="1"/>
|
||||
<xsd:element name="Forretningskvittering" type="dsv2:ForretningskvitteringType" minOccurs="1" maxOccurs="1"/>
|
||||
<xsd:element name="DistributionContext" type="dsv2:DistributionContextType" minOccurs="1" maxOccurs="1"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="FordelingskvitteringModtagResponseType"/>
|
||||
|
||||
<xsd:complexType name="FordelingsmodtagerListRequestType">
|
||||
<xsd:sequence>
|
||||
<xsd:element ref="callctx:CallContext" minOccurs="0" maxOccurs="1"/>
|
||||
<xsd:element ref="authctx:AuthorityContext" minOccurs="0" maxOccurs="1"/>
|
||||
<xsd:element name="Routing" type="dsv2:FordelingsmodtagerListRequest" minOccurs="1" maxOccurs="1"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="FordelingsmodtagerListResponseType">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Systemer" type="dsv2:tilgaengeligeModtagereType" minOccurs="1" maxOccurs="1"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="FordelingsmodtagerValiderRequestType">
|
||||
<xsd:sequence>
|
||||
<xsd:element ref="callctx:CallContext" minOccurs="0" maxOccurs="1"/>
|
||||
<xsd:element ref="authctx:AuthorityContext" minOccurs="0" maxOccurs="1"/>
|
||||
<xsd:element name="AfsendendeMyndighed" type="dsv2:CVRNumber" minOccurs="1" maxOccurs="1"/>
|
||||
<xsd:element name="RoutingListe" type="dsv2:RoutingListeType" minOccurs="1" maxOccurs="1"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="FordelingsmodtagerValiderResponseType">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="RoutingListe" type="dsv2:RoutingResposneListeType" minOccurs="1" maxOccurs="1"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:schema>
|
||||
@ -0,0 +1,58 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
xmlns:tns="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/2/port"
|
||||
targetNamespace="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/2/port"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns="http://schemas.xmlsoap.org/wsdl/"
|
||||
name="DistributionServiceAnvender"
|
||||
xmlns:types="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/2/types">
|
||||
|
||||
<types>
|
||||
<xsd:schema targetNamespace="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/2/types">
|
||||
<xsd:include schemaLocation="DistributionServiceMsgV2.xsd"/>
|
||||
</xsd:schema>
|
||||
</types>
|
||||
|
||||
<message name="FordelingskvitteringModtagRequestType">
|
||||
<part name="request" element="types:FordelingskvitteringModtagAnvenderRequest"/>
|
||||
</message>
|
||||
|
||||
<message name="FordelingskvitteringModtagResponseType">
|
||||
<part name="response" element="types:FordelingskvitteringModtagAnvenderResponse"/>
|
||||
</message>
|
||||
|
||||
<message name="TransportKvitteringType">
|
||||
<part name="fault" element="types:TransportKvittering"/>
|
||||
</message>
|
||||
|
||||
<portType name="DistributionSenderWebServicePort">
|
||||
<operation name="FordelingskvitteringModtag">
|
||||
<input message="tns:FordelingskvitteringModtagRequestType"/>
|
||||
<output message="tns:FordelingskvitteringModtagResponseType"/>
|
||||
<fault message="tns:TransportKvitteringType" name="TransportKvittering"/>
|
||||
</operation>
|
||||
</portType>
|
||||
|
||||
<binding name="DistributionServiceAnvenderBinding" type="tns:DistributionSenderWebServicePort">
|
||||
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
|
||||
|
||||
<operation name="FordelingskvitteringModtag">
|
||||
<soap:operation soapAction=""/>
|
||||
<input>
|
||||
<soap:body use="literal"/>
|
||||
</input>
|
||||
<output>
|
||||
<soap:body use="literal"/>
|
||||
</output>
|
||||
<fault name="TransportKvittering">
|
||||
<soap:fault name="TransportKvittering" use="literal"/>
|
||||
</fault>
|
||||
</operation>
|
||||
</binding>
|
||||
|
||||
<service name="DistributionServiceAnvender">
|
||||
<port name="DistributionSenderWebServicePort" binding="tns:DistributionServiceAnvenderBinding">
|
||||
<soap:address location="http://localhost:8080/service/DistributionService/DistributionService/2"/>
|
||||
</port>
|
||||
</service>
|
||||
</definitions>
|
||||
@ -0,0 +1,56 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
xmlns:tns="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/2/port"
|
||||
targetNamespace="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/2/port"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns="http://schemas.xmlsoap.org/wsdl/"
|
||||
name="DistributionServiceModtager"
|
||||
xmlns:types="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/2/types">
|
||||
|
||||
<types>
|
||||
<xsd:schema targetNamespace="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/2/types">
|
||||
<xsd:include schemaLocation="DistributionServiceMsgV2.xsd"/>
|
||||
</xsd:schema>
|
||||
</types>
|
||||
|
||||
<message name="FordelingsobjektModtagRequest">
|
||||
<part name="request" element="types:FordelingsobjektModtagRequest"/>
|
||||
</message>
|
||||
<message name="FordelingsobjektModtagResponse">
|
||||
<part name="response" element="types:FordelingsobjektModtagResponse"/>
|
||||
</message>
|
||||
|
||||
<message name="TransportKvitteringType">
|
||||
<part name="fault" element="types:TransportKvittering"/>
|
||||
</message>
|
||||
|
||||
<portType name="DistributionReceiverWebServicePort">
|
||||
<operation name="FordelingsobjektModtag">
|
||||
<input message="tns:FordelingsobjektModtagRequest"/>
|
||||
<output message="tns:FordelingsobjektModtagResponse"/>
|
||||
<fault message="tns:TransportKvitteringType" name="TransportKvittering"/>
|
||||
</operation>
|
||||
</portType>
|
||||
|
||||
<binding name="DistributionServiceModtagerBinding" type="tns:DistributionReceiverWebServicePort">
|
||||
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
|
||||
<operation name="FordelingsobjektModtag">
|
||||
<soap:operation soapAction=""/>
|
||||
<input>
|
||||
<soap:body use="literal"/>
|
||||
</input>
|
||||
<output>
|
||||
<soap:body use="literal"/>
|
||||
</output>
|
||||
<fault name="TransportKvittering">
|
||||
<soap:fault name="TransportKvittering" use="literal"/>
|
||||
</fault>
|
||||
</operation>
|
||||
</binding>
|
||||
|
||||
<service name="DistributionServiceModtager">
|
||||
<port name="DistributionReceiverWebServicePort" binding="tns:DistributionServiceModtagerBinding">
|
||||
<soap:address location="http://localhost:8080/service/DistributionService/DistributionService/2"/>
|
||||
</port>
|
||||
</service>
|
||||
</definitions>
|
||||
@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsd:schema xmlns:tns="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/2/types"
|
||||
targetNamespace="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/2/types"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified"
|
||||
version="1.0">
|
||||
|
||||
<!-- Import external entities -->
|
||||
<xsd:include schemaLocation="DistributionServiceTypesV2.xsd"/>
|
||||
|
||||
<!-- Elements used for messages in wsdl file -->
|
||||
<xsd:element name="FordelingsobjektModtagRequest" type="tns:FordelingsobjektModtagRequestType"/>
|
||||
<xsd:element name="FordelingsobjektModtagResponse" type="tns:FordelingsobjektModtagResponseType"/>
|
||||
<xsd:element name="FordelingskvitteringModtagAnvenderRequest"
|
||||
type="tns:FordelingskvitteringModtagAnvenderRequestType"/>
|
||||
<xsd:element name="FordelingskvitteringModtagAnvenderResponse"
|
||||
type="tns:FordelingskvitteringModtagAnvenderResponseType"/>
|
||||
<xsd:element name="TransportKvittering" type="tns:TransportkvitteringType"/>
|
||||
|
||||
<xsd:complexType name="FordelingsobjektModtagRequestType">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="anmodning" type="tns:anmodRequestType" minOccurs="1" maxOccurs="1"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="FordelingsobjektModtagResponseType">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="ForretningsKvittering" type="tns:ForretningskvitteringType" minOccurs="1" maxOccurs="1"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="FordelingskvitteringModtagAnvenderRequestType">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Forretningskvittering" type="tns:ForretningskvitteringType" minOccurs="1" maxOccurs="1"/>
|
||||
<xsd:element name="DistributionContext" type="tns:DistributionContextType" minOccurs="1" maxOccurs="1"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="FordelingskvitteringModtagAnvenderResponseType"/>
|
||||
</xsd:schema>
|
||||
@ -0,0 +1,550 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<schema xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:tns="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/2/types"
|
||||
targetNamespace="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/2/types"
|
||||
elementFormDefault="qualified"
|
||||
xmlns:oio="urn:oio:definitions:1.0.0"
|
||||
oio:mapping="urn:oio:sagdok:MPD:3.0.0"
|
||||
attributeFormDefault="unqualified">
|
||||
|
||||
<simpleType name="URN">
|
||||
<restriction base="string">
|
||||
<pattern value="[uU][rR][nN]:[a-zA-Z0-9][a-zA-Z0-9-]{0,30}[a-zA-Z0-9]:[a-zA-Z0-9\(\)+,\\\-.:=@;$_!*'%/?#]+"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<simpleType name="UUID">
|
||||
<restriction base="string">
|
||||
<pattern value="[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<complexType name="UUID_URN">
|
||||
<choice>
|
||||
<element name="UUID" type="tns:UUID"/>
|
||||
<element name="URN" type="tns:URN"/>
|
||||
</choice>
|
||||
</complexType>
|
||||
|
||||
<complexType name="UUID_URN_Tekst">
|
||||
<choice>
|
||||
<element name="UUID" type="tns:UUID"/>
|
||||
<element name="URN" type="tns:URN"/>
|
||||
<element name="Tekst" type="string"/>
|
||||
</choice>
|
||||
</complexType>
|
||||
|
||||
<simpleType name="CVRNumber">
|
||||
<restriction base="string">
|
||||
<pattern value="[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<simpleType name="KLEEmneType">
|
||||
<restriction base="string">
|
||||
<pattern value="[0-9][0-9][.][0-9][0-9][.][0-9][0-9]"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<simpleType name="KLEHandlingFacetType">
|
||||
<restriction base="string">
|
||||
<pattern value="[A-Z,Æ,Ø,Å][0-9][0-9]"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<simpleType name="ObjektTypeType">
|
||||
<restriction base="string">
|
||||
<enumeration value="JOURNALPOST"/>
|
||||
<enumeration value="DOKUMENT"/>
|
||||
<enumeration value="FORMULAR"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<simpleType name="LivscyklusKodeType">
|
||||
<restriction base="string">
|
||||
<enumeration value="Oprettet"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<!-- Kvitteringer -->
|
||||
|
||||
<simpleType name="TransportValideringsKodeType">
|
||||
<restriction base="string">
|
||||
<enumeration value="OK"/>
|
||||
<enumeration value="ADVARSEL"/>
|
||||
<enumeration value="FEJL"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<complexType name="TransportkvitteringType">
|
||||
<sequence>
|
||||
<element name="TransportValideringsKode" type="tns:TransportValideringsKodeType" minOccurs="1"
|
||||
maxOccurs="1"/>
|
||||
<element name="Begrundelse" type="string" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="FejlListe" type="tns:FejlListeType" minOccurs="0" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="FejlListeType">
|
||||
<sequence>
|
||||
<element name="Fejl" type="tns:FejlType" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="FejlType">
|
||||
<sequence>
|
||||
<element name="FejlKode" type="string" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="FejlTekst" type="string" minOccurs="1" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<simpleType name="ForretningsValideringsKodeType">
|
||||
<restriction base="string">
|
||||
<enumeration value="MODTAGET"/>
|
||||
<enumeration value="AFLEVERET"/>
|
||||
<enumeration value="ACCEPTERET"/>
|
||||
<enumeration value="AFVIST"/>
|
||||
<enumeration value="FEJLET"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<simpleType name="KvitteringstypeType">
|
||||
<restriction base="string">
|
||||
<enumeration value="Teknisk"/>
|
||||
<enumeration value="Forretning"/>
|
||||
<enumeration value="Digital post"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<complexType name="ForretningskvitteringType">
|
||||
<sequence>
|
||||
<element name="ForretningsValideringsKode" type="tns:ForretningsValideringsKodeType" minOccurs="1"
|
||||
maxOccurs="1"/>
|
||||
<element name="Kvitteringstype" type="tns:KvitteringstypeType" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="Begrundelse" type="string" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="FejlListe" type="tns:FejlListeType" minOccurs="0" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!-- Typer til specifikke services -->
|
||||
|
||||
<complexType name="anmodRequestType">
|
||||
<sequence>
|
||||
<element name="DistributionContext" type="tns:DistributionContextType" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="DistributionObject" type="tns:DistributionObjectType" minOccurs="1" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="DistributionContextType">
|
||||
<sequence>
|
||||
<element name="AnvenderTransaktionsID" type="tns:UUID" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="DistributionTransktionsID" type="tns:UUID" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="DigitalPostMeddelelsesID" type="string" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="AfsendendeMyndighed" type="tns:CVRNumber" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="RoutingMyndighed" type="tns:CVRNumber" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="RoutingValg" type="tns:RoutingValg" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="DokumentFilNavn" type="string" minOccurs="0" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="RoutingValg">
|
||||
<choice>
|
||||
<element name="RoutingKLEEmneHandling" type="tns:RoutingKLEInfo" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="RoutingModtagerAktoer" type="tns:UUID" minOccurs="1" maxOccurs="1"/>
|
||||
</choice>
|
||||
</complexType>
|
||||
|
||||
<complexType name="RoutingKLEInfo">
|
||||
<sequence>
|
||||
<element name="RoutingKLEEmne" type="tns:KLEEmneType" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="RoutingHandlingFacet" type="tns:KLEHandlingFacetType" minOccurs="0" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="RoutingListeType">
|
||||
<sequence>
|
||||
<element name="Routing" type="tns:RoutingType" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="RoutingType">
|
||||
<sequence>
|
||||
<element name="RoutingMyndighed" type="tns:CVRNumber" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="RoutingModtagerAktoer" type="tns:UUID" minOccurs="1" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="RoutingResposneListeType">
|
||||
<sequence>
|
||||
<element name="RoutingModtager" type="tns:RoutingResponseType" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="RoutingResponseType">
|
||||
<sequence>
|
||||
<element name="RoutingMyndighed" type="tns:CVRNumber" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="RoutingModtagerAktoer" type="tns:UUID" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="KanModtage" type="boolean" minOccurs="1" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="DistributionObjectType">
|
||||
<sequence>
|
||||
<element name="ObjektType" type="tns:ObjektTypeType" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="ObjektIndhold" type="tns:ObjektIndholdType" minOccurs="1" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="ObjektIndholdType">
|
||||
<sequence>
|
||||
<choice minOccurs="0" maxOccurs="1">
|
||||
<element name="DistributionDokument" type="tns:DistributionDokumentType"/>
|
||||
<element name="DistributionJournalPost" type="tns:DistributionJournalPostType"/>
|
||||
<element name="DistributionFormular" type="tns:DistributionFormularType"/>
|
||||
</choice>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="DistributionDokumentType">
|
||||
<sequence>
|
||||
<element name="ID" type="tns:UUID" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="KLEEmneForslag" type="tns:KLEEmneType" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="HandlingFacetForslag" type="tns:KLEHandlingFacetType" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="SagForslag" type="tns:UUID" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="Registrering" type="tns:DokumentRegistreringType" minOccurs="1" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="DokumentRegistreringType">
|
||||
<sequence>
|
||||
<element name="FraTidsPunkt" type="dateTime" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="LivscyklusKode" type="tns:LivscyklusKodeType" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="ImportTidspunkt" type="dateTime" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="BrugerRef" type="tns:UUID_URN" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="RegistreringItSystem" type="tns:UUID_URN" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="RelationListe" type="tns:RelationsListe" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="TilstandsListe" type="tns:TilstandListeType" minOccurs="1" maxOccurs="unbounded"/>
|
||||
<element name="AttributListe" type="tns:AttributterListeType" minOccurs="1" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="RelationsListe">
|
||||
<sequence>
|
||||
<element name="VariantListe" type="tns:VariantListeType" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="DokumentPartListe" type="tns:DokumentPartListeType" minOccurs="0" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="VariantListeType">
|
||||
<sequence>
|
||||
<element name="Variant" type="tns:VariantType" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="VariantType">
|
||||
<sequence>
|
||||
<element name="Virkning" type="tns:VirkningType" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="Rolle" type="tns:VariantRolleType" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="Indeks" type="string" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="VariantAttributter" type="tns:VariantAttributterType" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="DelAttributter" type="tns:DelAttributterType" minOccurs="1" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<simpleType name="VariantRolleType">
|
||||
<restriction base="string">
|
||||
<enumeration value="Variant"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<complexType name="VariantAttributterType">
|
||||
<sequence>
|
||||
<element name="VariantType" type="string" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="Produktion" type="string" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="Offentliggoerelse" type="boolean" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="Arkivering" type="boolean" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="DelvistScannet" type="boolean" minOccurs="0" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="DelAttributterType">
|
||||
<sequence>
|
||||
<element name="DelTekst" type="string" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="Indeks" type="integer" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="Indhold" type="string" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="Filstoerrelse" type="integer" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="MimeType" type="string" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="ScannerID" type="string" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="Location" type="string" minOccurs="0" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="DokumentPartListeType">
|
||||
<sequence>
|
||||
<element name="DokumentPart" type="tns:DokumentPartType" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="DokumentPartType">
|
||||
<sequence>
|
||||
<element name="Virkning" type="tns:VirkningType" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="Rolle" type="tns:DokumentPartRolleType" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="Indeks" type="integer" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="Part" type="tns:PartType" minOccurs="1" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<simpleType name="DokumentPartRolleType">
|
||||
<restriction base="string">
|
||||
<enumeration value="PrimaerPart"/>
|
||||
<enumeration value="SekundaerPart"/>
|
||||
<enumeration value="KopiModtager"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<complexType name="VirkningType">
|
||||
<sequence>
|
||||
<element name="FraTidspunkt" type="dateTime" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="TilTidspunkt" type="dateTime" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="Aktoer" type="tns:UUID_URN" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="AktoerType" type="tns:AktoerTypeType" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="NoteTekst" type="string" minOccurs="0" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<simpleType name="AktoerTypeType">
|
||||
<restriction base="string">
|
||||
<enumeration value="Organisation"/>
|
||||
<enumeration value="OrganisationEnhed"/>
|
||||
<enumeration value="OrganisationFunktion"/>
|
||||
<enumeration value="Bruger"/>
|
||||
<enumeration value="ItSystem"/>
|
||||
<enumeration value="Interessefaellesskab"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<complexType name="TilstandListeType">
|
||||
<sequence>
|
||||
<element name="Tilstand" type="tns:TilstandType" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="TilstandType">
|
||||
<sequence>
|
||||
<element name="Fremdrift" type="tns:FremdriftType" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="Virkning" type="tns:VirkningType" minOccurs="1" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<simpleType name="FremdriftType">
|
||||
<restriction base="string">
|
||||
<enumeration value="Modtaget"/>
|
||||
<enumeration value="Fordelt"/>
|
||||
<enumeration value="UnderUdarbejdelse"/>
|
||||
<enumeration value="UnderReview"/>
|
||||
<enumeration value="Endeligt"/>
|
||||
<enumeration value="Afleveret"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<complexType name="AttributterListeType">
|
||||
<sequence>
|
||||
<element name="Attributter" type="tns:AttributterType" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="AttributterType">
|
||||
<sequence>
|
||||
<element name="BrugervendtNoegleTekst" type="string" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="TitelTekst" type="string" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="BeskrivelseTekst" type="string" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="Dokumenttype" type="tns:DokumenttypeType" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="Retning" type="tns:RetningType" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="Brevdato" type="date" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="Fristdato" type="date" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="VersionIdentifikator" type="integer" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="UnderversionIdentificator" type="integer" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="KassationskodeTekst" type="string" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="Virkning" type="tns:VirkningType" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="OffentlighedUndtaget" type="tns:OffentlighedUndtagetType" minOccurs="0" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<simpleType name="DokumenttypeType">
|
||||
<restriction base="string">
|
||||
<enumeration value="Faktura"/>
|
||||
<enumeration value="Brev"/>
|
||||
<enumeration value="Notat"/>
|
||||
<enumeration value="Rapport"/>
|
||||
<enumeration value="Dagsorden"/>
|
||||
<enumeration value="Refereat"/>
|
||||
<enumeration value="eMail"/>
|
||||
<enumeration value="Anden"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<simpleType name="RetningType">
|
||||
<restriction base="string">
|
||||
<enumeration value="Indgaaende"/>
|
||||
<enumeration value="Udgaaende"/>
|
||||
<enumeration value="InterntInd"/>
|
||||
<enumeration value="InterntUd"/>
|
||||
<enumeration value="Internt"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<complexType name="OffentlighedUndtagetType">
|
||||
<sequence>
|
||||
<element name="TitelAlternativTekst" type="string" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="HjemmelTekst" type="string" minOccurs="1" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="DistributionJournalPostType">
|
||||
<sequence>
|
||||
<element name="ID" type="tns:UUID" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="KLEEmneForslag" type="tns:KLEEmneType" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="HandlingFacetForslag" type="tns:KLEHandlingFacetType" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="SagForslag" type="tns:UUID" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="PartAngivelse" type="tns:PartType" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="Registrering" type="tns:JournalPostRegistreringType" minOccurs="1" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="JournalPostRegistreringType">
|
||||
<sequence>
|
||||
<element name="FraTidsPunkt" type="dateTime" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="LivscyklusKode" type="tns:LivscyklusKodeType" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="ImportTidspunkt" type="dateTime" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="BrugerRef" type="tns:UUID_URN" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="RegistreringItSystem" type="tns:UUID_URN" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="RelationListe" type="tns:JournalPostRelationsListeType" minOccurs="1" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="PartType">
|
||||
<sequence>
|
||||
<element name="ObjektType" type="tns:PartObjektTypeType" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="ReferenceID" type="tns:UUID_URN_Tekst" minOccurs="1" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<simpleType name="PartObjektTypeType">
|
||||
<restriction base="string">
|
||||
<enumeration value="Person"/>
|
||||
<enumeration value="Virksomhed"/>
|
||||
<enumeration value="Organisation"/>
|
||||
<enumeration value="OrgEnhed"/>
|
||||
<enumeration value="OrgFunktion"/>
|
||||
<enumeration value="Interesse-faellesskab"/>
|
||||
<enumeration value="Bruger"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<complexType name="JournalPostRelationsListeType">
|
||||
<sequence>
|
||||
<element name="JournalPost" type="tns:JournalPostType" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="JournalPostType">
|
||||
<sequence>
|
||||
<element name="Virkning" type="tns:VirkningType" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="Rolle" type="tns:JournalPostRolleType" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="Indeks" type="string" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="Dokument" type="tns:JournalPartType" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="JournalpostAttributter" type="tns:JournalpostEgenskaberType" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="JournalnotatAttributter" type="tns:JournalNotatEgenskaberType" minOccurs="1" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<simpleType name="JournalPostRolleType">
|
||||
<restriction base="string">
|
||||
<enumeration value="Journalpost"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<complexType name="JournalpostEgenskaberType">
|
||||
<sequence>
|
||||
<element name="Dokumenttitel" type="string" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="OffentlighedUndtaget" type="tns:OffentlighedUndtagetType" minOccurs="0" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="JournalNotatEgenskaberType">
|
||||
<sequence>
|
||||
<element name="Titel" type="string" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="Notat" type="string" minOccurs="1" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="JournalPartType">
|
||||
<sequence>
|
||||
<element name="Objekttype" type="tns:JournalPartObjekttypeType" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="ReferenceID" type="tns:UUID_URN" minOccurs="1" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<simpleType name="JournalPartObjekttypeType">
|
||||
<restriction base="string">
|
||||
<enumeration value="Dokument"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<complexType name="DistributionFormularType">
|
||||
<sequence>
|
||||
<element name="ID" type="tns:UUID" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="KLEEmneForslag" type="tns:KLEEmneType" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="HandlingFacetForslag" type="tns:KLEHandlingFacetType" minOccurs="0" maxOccurs="1"/>
|
||||
<element name="Meddelelse" type="tns:MeddelelseType" minOccurs="1" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="MeddelelseType">
|
||||
<sequence>
|
||||
<element name="FormularType" type="string" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="Formular" type="tns:FormularType" minOccurs="1" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="FormularType">
|
||||
<sequence>
|
||||
<element name="TitelTekst" type="string" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="FormatNavn" type="string" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="FormularIndhold" type="base64Binary" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="FormularXML" type="tns:FormularXMLType" minOccurs="1" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="FormularXMLType">
|
||||
<sequence>
|
||||
<any minOccurs="1" maxOccurs="1" processContents="skip"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="tilgaengeligeModtagereType">
|
||||
<sequence>
|
||||
<element name="System" type="tns:ModtagerMedEndpointType" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="ModtagerMedEndpointType">
|
||||
<sequence>
|
||||
<element name="SystemMyndighed" minOccurs="1" maxOccurs="1" type="tns:CVRNumber"/>
|
||||
<element name="SystemUUID" minOccurs="1" maxOccurs="1" type="tns:UUID"/>
|
||||
<element name="SystemNavn" minOccurs="1" maxOccurs="1" type="string"/>
|
||||
<element name="RoutingKLEEmne" type="tns:KLEEmneType" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="RoutingHandlingFacet" type="tns:KLEHandlingFacetType" minOccurs="0" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="FordelingsmodtagerListRequest">
|
||||
<sequence>
|
||||
<element name="AfsendendeMyndighed" type="tns:CVRNumber" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="RoutingMyndighed" type="tns:CVRNumber" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="RoutingKLEEmne" type="tns:KLEEmneType" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="RoutingHandlingFacet" type="tns:KLEHandlingFacetType" minOccurs="0" maxOccurs="1"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
</schema>
|
||||
22
XSDVisualiser/Rescources/SF2900/sp/AuthorityContext_1.xsd
Normal file
22
XSDVisualiser/Rescources/SF2900/sp/AuthorityContext_1.xsd
Normal file
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsd:schema xmlns:tns="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified"
|
||||
version="1.0"
|
||||
targetNamespace="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/">
|
||||
|
||||
<xsd:element name="AuthorityContext" type="tns:AuthorityContextType"/>
|
||||
|
||||
<xsd:complexType name="AuthorityContextType">
|
||||
<xsd:all>
|
||||
<xsd:element name="MunicipalityCVR" type="tns:CVRNumber" minOccurs="1" maxOccurs="1"/>
|
||||
</xsd:all>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:simpleType name="CVRNumber">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:pattern value="[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
</xsd:schema>
|
||||
38
XSDVisualiser/Rescources/SF2900/sp/CallContext_1.xsd
Normal file
38
XSDVisualiser/Rescources/SF2900/sp/CallContext_1.xsd
Normal file
@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsd:schema xmlns:tns="http://serviceplatformen.dk/xml/schemas/CallContext/1/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified"
|
||||
version="1.0"
|
||||
targetNamespace="http://serviceplatformen.dk/xml/schemas/CallContext/1/">
|
||||
|
||||
<xsd:element name="CallContext" type="tns:CallContextType"/>
|
||||
|
||||
<xsd:complexType name="CallContextType">
|
||||
<xsd:all>
|
||||
<xsd:element ref="tns:OnBehalfOfUser" minOccurs="0" maxOccurs="1"/>
|
||||
<xsd:element ref="tns:CallersServiceCallIdentifier" minOccurs="0" maxOccurs="1"/>
|
||||
<xsd:element ref="tns:AccountingInfo" minOccurs="0" maxOccurs="1"/>
|
||||
</xsd:all>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:element name="OnBehalfOfUser" type="tns:OnBehalfOfUserType"/>
|
||||
<xsd:simpleType name="OnBehalfOfUserType">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:maxLength value="255"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:element name="CallersServiceCallIdentifier" type="tns:CallersServiceCallIdentifierType"/>
|
||||
<xsd:simpleType name="CallersServiceCallIdentifierType">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:maxLength value="255"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:element name="AccountingInfo" type="tns:AccountingInfoType"/>
|
||||
<xsd:simpleType name="AccountingInfoType">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:maxLength value="255"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
</xsd:schema>
|
||||
67
XSDVisualiser/Rescources/SF2900/sp/InvocationContext_1.xsd
Normal file
67
XSDVisualiser/Rescources/SF2900/sp/InvocationContext_1.xsd
Normal file
@ -0,0 +1,67 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsd:schema xmlns:tns="http://serviceplatformen.dk/xml/schemas/InvocationContext/1/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified"
|
||||
version="1.0"
|
||||
targetNamespace="http://serviceplatformen.dk/xml/schemas/InvocationContext/1/">
|
||||
|
||||
<xsd:element name="InvocationContext" type="tns:InvocationContextType"/>
|
||||
<xsd:complexType name="InvocationContextType">
|
||||
<xsd:all>
|
||||
<xsd:element ref="tns:ServiceAgreementUUID" minOccurs="1" maxOccurs="1"/>
|
||||
<xsd:element ref="tns:UserSystemUUID" minOccurs="1" maxOccurs="1"/>
|
||||
<xsd:element ref="tns:UserUUID" minOccurs="1" maxOccurs="1"/>
|
||||
<xsd:element ref="tns:OnBehalfOfUser" minOccurs="0" maxOccurs="1"/>
|
||||
<xsd:element ref="tns:ServiceUUID" minOccurs="1" maxOccurs="1"/>
|
||||
<xsd:element ref="tns:CallersServiceCallIdentifier" minOccurs="0" maxOccurs="1"/>
|
||||
<xsd:element ref="tns:AccountingInfo" minOccurs="0" maxOccurs="1"/>
|
||||
</xsd:all>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:element name="ServiceAgreementUUID" type="tns:ServiceAgreenentUUIDtype"/>
|
||||
<xsd:simpleType name="ServiceAgreenentUUIDtype">
|
||||
<xsd:restriction base="tns:UUIDtype"/>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:element name="ServiceUUID" type="tns:ServiceUUIDtype"/>
|
||||
<xsd:simpleType name="ServiceUUIDtype">
|
||||
<xsd:restriction base="tns:UUIDtype"/>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:element name="UserSystemUUID" type="tns:UserSystemUUIDtype"/>
|
||||
<xsd:simpleType name="UserSystemUUIDtype">
|
||||
<xsd:restriction base="tns:UUIDtype"/>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:element name="UserUUID" type="tns:UserUUIDtype"/>
|
||||
<xsd:simpleType name="UserUUIDtype">
|
||||
<xsd:restriction base="tns:UUIDtype"/>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:element name="OnBehalfOfUser" type="tns:OnBehalfOfUserType"/>
|
||||
<xsd:simpleType name="OnBehalfOfUserType">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:maxLength value="255"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:element name="CallersServiceCallIdentifier" type="tns:CallersServiceCallIdentifierType"/>
|
||||
<xsd:simpleType name="CallersServiceCallIdentifierType">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:maxLength value="255"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:element name="AccountingInfo" type="tns:AccountingInfoType"/>
|
||||
<xsd:simpleType name="AccountingInfoType">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:maxLength value="255"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:simpleType name="UUIDtype">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:pattern value="[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
</xsd:schema>
|
||||
70
XSDVisualiser/Rescources/SF2900/sp/Kvittering_1.xsd
Normal file
70
XSDVisualiser/Rescources/SF2900/sp/Kvittering_1.xsd
Normal file
@ -0,0 +1,70 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsd:schema targetNamespace="http://serviceplatformen.dk/xml/schemas/kvittering/1/"
|
||||
xmlns:tns="http://serviceplatformen.dk/xml/schemas/kvittering/1/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified"
|
||||
version="1.0">
|
||||
|
||||
<xsd:annotation>
|
||||
<xsd:documentation xml:lang="en">
|
||||
Version 1.0.0
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
|
||||
<xsd:simpleType name="TransportValideringsKodeType">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="OK"/>
|
||||
<xsd:enumeration value="ADVARSEL"/>
|
||||
<xsd:enumeration value="FEJL"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:element name="TransportKvittering" type="tns:TransportKvitteringType"/>
|
||||
<xsd:complexType name="TransportKvitteringType">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="TransportValideringsKode" type="tns:TransportValideringsKodeType" minOccurs="1"
|
||||
maxOccurs="1"/>
|
||||
<xsd:element name="Begrundelse" type="xsd:string" minOccurs="0" maxOccurs="1"/>
|
||||
<xsd:element name="FejlListe" type="tns:FejlListeType" minOccurs="0" maxOccurs="1"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="FejlListeType">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Fejl" type="tns:FejlType" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="FejlType">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="FejlKode" type="xsd:string" minOccurs="1" maxOccurs="1"/>
|
||||
<xsd:element name="FejlTekst" type="xsd:string" minOccurs="1" maxOccurs="1"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:element name="Forretningskvittering" type="tns:ForretningskvitteringType"/>
|
||||
<xsd:complexType name="ForretningskvitteringType">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="ForretningsValideringsKode" type="tns:ForretningsValideringsKodeType" minOccurs="1"
|
||||
maxOccurs="1"/>
|
||||
<xsd:element name="Begrundelse" type="xsd:string" minOccurs="0" maxOccurs="1"/>
|
||||
<xsd:element name="FejlListe" type="tns:FejlListeType" minOccurs="0" maxOccurs="1"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:simpleType name="ForretningsValideringsKodeType">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="MODTAGET"/>
|
||||
<xsd:enumeration value="AFLEVERET"/>
|
||||
<xsd:enumeration value="ACCEPTERET"/>
|
||||
<xsd:enumeration value="AFVIST"/>
|
||||
<xsd:enumeration value="FEJLET"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:complexType name="SygefravaerResponse">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="TransportKvittering" type="tns:TransportKvitteringType" minOccurs="1" maxOccurs="1"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:schema>
|
||||
@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<wsdl:definitions name="ServiceplatformFaultMessage"
|
||||
targetNamespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/"
|
||||
xmlns:tns="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
|
||||
|
||||
<wsdl:types>
|
||||
<xsd:schema targetNamespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/">
|
||||
<xsd:include schemaLocation="ServiceplatformFault_1.xsd"/>
|
||||
</xsd:schema>
|
||||
</wsdl:types>
|
||||
|
||||
<wsdl:message name="ServiceplatformFault">
|
||||
<wsdl:part name="error" element="tns:ServiceplatformFault"/>
|
||||
</wsdl:message>
|
||||
|
||||
</wsdl:definitions>
|
||||
@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsd:schema xmlns:tns="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/"
|
||||
targetNamespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified"
|
||||
version="1.0">
|
||||
|
||||
<xsd:element name="ServiceplatformFault" type="tns:ServiceplatformFaultType"/>
|
||||
<xsd:complexType name="ServiceplatformFaultType">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="ErrorList" type="tns:ErrorListType" minOccurs="0" maxOccurs="1"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="ErrorListType">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Error" type="tns:ErrorType" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="ErrorType">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="ErrorCode" type="xsd:string" minOccurs="1" maxOccurs="1"/>
|
||||
<xsd:element name="ErrorText" type="xsd:string" minOccurs="1" maxOccurs="1"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:schema>
|
||||
@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<wsdl:definitions name="ServiceplatformFaultMessage"
|
||||
targetNamespace="http://serviceplatformen.dk/xml/schemas/kvittering/1/"
|
||||
xmlns:tns="http://serviceplatformen.dk/xml/schemas/kvittering/1/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
|
||||
|
||||
<wsdl:types>
|
||||
<xsd:schema targetNamespace="http://serviceplatformen.dk/xml/schemas/kvittering/1/">
|
||||
<xsd:include schemaLocation="Kvittering_1.xsd"/>
|
||||
</xsd:schema>
|
||||
</wsdl:types>
|
||||
|
||||
<wsdl:message name="TransportKvitteringFault">
|
||||
<wsdl:part name="error" element="tns:TransportKvittering"/>
|
||||
</wsdl:message>
|
||||
|
||||
</wsdl:definitions>
|
||||
2
XSDVisualiser/Rescources/SF2900/sp/service.properties
Normal file
2
XSDVisualiser/Rescources/SF2900/sp/service.properties
Normal file
@ -0,0 +1,2 @@
|
||||
service.uuid=74d3c5f5-1b3c-4c6d-8366-1241f055d332
|
||||
service.entityID=http://sp.serviceplatformen.dk/service/fordeling/3
|
||||
@ -0,0 +1,135 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
xmlns:tns="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/3/port"
|
||||
targetNamespace="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/3/port"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns="http://schemas.xmlsoap.org/wsdl/"
|
||||
name="DistributionService"
|
||||
xmlns:types="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/3/types"
|
||||
xmlns:wsp="http://www.w3.org/ns/ws-policy">
|
||||
|
||||
<import namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Security/Policy" location="policies.wsdl"/>
|
||||
|
||||
<types>
|
||||
<xsd:schema targetNamespace="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/3/types">
|
||||
<xsd:include schemaLocation="../../DistributionServiceMsg.xsd"/>
|
||||
</xsd:schema>
|
||||
</types>
|
||||
|
||||
<message name="FordelingsobjektAfsendRequest">
|
||||
<part name="request" element="types:FordelingsobjektAfsendRequest"/>
|
||||
</message>
|
||||
<message name="FordelingsobjektAfsendResponse">
|
||||
<part name="response" element="types:FordelingsobjektAfsendResponse"/>
|
||||
</message>
|
||||
<message name="FordelingskvitteringModtagRequestType">
|
||||
<part name="request" element="types:FordelingskvitteringModtagRequest"/>
|
||||
</message>
|
||||
<message name="FordelingskvitteringModtagResponseType">
|
||||
<part name="response" element="types:FordelingskvitteringModtagResponse"/>
|
||||
</message>
|
||||
<message name="FordelingsmodtagerListRequestType">
|
||||
<part name="request" element="types:FordelingsmodtagerListRequest"/>
|
||||
</message>
|
||||
<message name="FordelingsmodtagerListResponseType">
|
||||
<part name="response" element="types:FordelingsmodtagerListResponse"/>
|
||||
</message>
|
||||
<message name="FordelingsmodtagerValiderRequestType">
|
||||
<part name="request" element="types:FordelingsmodtagerValiderRequest"/>
|
||||
</message>
|
||||
<message name="FordelingsmodtagerValiderResponseType">
|
||||
<part name="response" element="types:FordelingsmodtagerValiderResponse"/>
|
||||
</message>
|
||||
|
||||
<message name="TransportKvitteringType">
|
||||
<part name="fault" element="types:TransportKvittering"/>
|
||||
</message>
|
||||
|
||||
<portType name="DistributionWebServicePort">
|
||||
<operation name="FordelingsobjektAfsend">
|
||||
<input message="tns:FordelingsobjektAfsendRequest"/>
|
||||
<output message="tns:FordelingsobjektAfsendResponse"/>
|
||||
<fault message="tns:TransportKvitteringType" name="TransportKvittering"/>
|
||||
</operation>
|
||||
<operation name="FordelingskvitteringModtag">
|
||||
<input message="tns:FordelingskvitteringModtagRequestType"/>
|
||||
<output message="tns:FordelingskvitteringModtagResponseType"/>
|
||||
<fault message="tns:TransportKvitteringType" name="TransportKvittering"/>
|
||||
</operation>
|
||||
<operation name="FordelingsmodtagerList">
|
||||
<input message="tns:FordelingsmodtagerListRequestType"/>
|
||||
<output message="tns:FordelingsmodtagerListResponseType"/>
|
||||
<fault message="tns:TransportKvitteringType" name="TransportKvittering"/>
|
||||
</operation>
|
||||
<operation name="FordelingsmodtagerValider">
|
||||
<input message="tns:FordelingsmodtagerValiderRequestType"/>
|
||||
<output message="tns:FordelingsmodtagerValiderResponseType"/>
|
||||
<fault message="tns:TransportKvitteringType" name="TransportKvittering"/>
|
||||
</operation>
|
||||
</portType>
|
||||
|
||||
<binding name="DistributionServiceBinding" type="tns:DistributionWebServicePort">
|
||||
<wsp:PolicyReference URI="policies.wsdl#ServiceplatformBindingPolicy"/>
|
||||
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
|
||||
|
||||
<operation name="FordelingsobjektAfsend">
|
||||
<soap:operation soapAction="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/3/port/FordelingsobjektAfsend"/>
|
||||
<input>
|
||||
<soap:body use="literal"/>
|
||||
</input>
|
||||
<output>
|
||||
<soap:body use="literal"/>
|
||||
</output>
|
||||
<fault name="TransportKvittering">
|
||||
<soap:fault name="TransportKvittering" use="literal"/>
|
||||
</fault>
|
||||
</operation>
|
||||
|
||||
<operation name="FordelingskvitteringModtag">
|
||||
<soap:operation soapAction="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/3/port/FordelingskvitteringModtag"/>
|
||||
<input>
|
||||
<soap:body use="literal"/>
|
||||
</input>
|
||||
<output>
|
||||
<soap:body use="literal"/>
|
||||
</output>
|
||||
|
||||
<fault name="TransportKvittering">
|
||||
<soap:fault name="TransportKvittering" use="literal"/>
|
||||
</fault>
|
||||
</operation>
|
||||
|
||||
<operation name="FordelingsmodtagerList">
|
||||
<soap:operation
|
||||
soapAction="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/3/port/FordelingsmodtagerList"/>
|
||||
<input>
|
||||
<soap:body use="literal"/>
|
||||
</input>
|
||||
<output>
|
||||
<soap:body use="literal"/>
|
||||
</output>
|
||||
<fault name="TransportKvittering">
|
||||
<soap:fault name="TransportKvittering" use="literal"/>
|
||||
</fault>
|
||||
</operation>
|
||||
|
||||
<operation name="FordelingsmodtagerValider">
|
||||
<soap:operation soapAction="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/3/port/FordelingsmodtagerValider"/>
|
||||
<input>
|
||||
<soap:body use="literal"/>
|
||||
</input>
|
||||
<output>
|
||||
<soap:body use="literal"/>
|
||||
</output>
|
||||
<fault name="TransportKvittering">
|
||||
<soap:fault name="TransportKvittering" use="literal"/>
|
||||
</fault>
|
||||
</operation>
|
||||
</binding>
|
||||
|
||||
<service name="DistributionService">
|
||||
<port name="DistributionServiceWebServicePort" binding="tns:DistributionServiceBinding">
|
||||
<soap:address location="https://localhost:8080/service/SP/Distribution/3"/>
|
||||
</port>
|
||||
</service>
|
||||
</definitions>
|
||||
40
XSDVisualiser/Rescources/SF2900/wsdl/context/policies.wsdl
Normal file
40
XSDVisualiser/Rescources/SF2900/wsdl/context/policies.wsdl
Normal file
@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<wsdl:definitions targetNamespace="http://serviceplatformen.dk/xml/wsdl/soap11/Security/Policy"
|
||||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
|
||||
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
|
||||
xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
|
||||
|
||||
<wsp:Policy Name="policies.wsdl#ServiceplatformBindingPolicy">
|
||||
<wsp:ExactlyOne>
|
||||
<wsp:PolicyReference URI="#ClientContextTransportBindingPolicy"/>
|
||||
</wsp:ExactlyOne>
|
||||
</wsp:Policy>
|
||||
|
||||
<wsp:Policy wsu:Id="ServiceplatformBindingPolicy">
|
||||
<wsp:ExactlyOne>
|
||||
<wsp:PolicyReference URI="#ClientContextTransportBindingPolicy"/>
|
||||
</wsp:ExactlyOne>
|
||||
</wsp:Policy>
|
||||
|
||||
<wsp:Policy wsu:Id="ClientContextTransportBindingPolicy">
|
||||
<sp:TransportBinding xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
|
||||
<wsp:Policy>
|
||||
<sp:TransportToken>
|
||||
<wsp:Policy>
|
||||
<sp:HttpsToken>
|
||||
<wsp:Policy>
|
||||
<sp:RequireClientCertificate/>
|
||||
</wsp:Policy>
|
||||
</sp:HttpsToken>
|
||||
</wsp:Policy>
|
||||
</sp:TransportToken>
|
||||
<sp:AlgorithmSuite>
|
||||
<wsp:Policy>
|
||||
<sp:Basic256Sha256/>
|
||||
</wsp:Policy>
|
||||
</sp:AlgorithmSuite>
|
||||
</wsp:Policy>
|
||||
</sp:TransportBinding>
|
||||
</wsp:Policy>
|
||||
</wsdl:definitions>
|
||||
@ -0,0 +1,135 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
xmlns:tns="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/3/port"
|
||||
targetNamespace="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/3/port"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns="http://schemas.xmlsoap.org/wsdl/"
|
||||
name="DistributionService"
|
||||
xmlns:types="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/3/types"
|
||||
xmlns:wsp="http://www.w3.org/ns/ws-policy">
|
||||
|
||||
<import namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Security/Policy" location="policies.wsdl"/>
|
||||
|
||||
<types>
|
||||
<xsd:schema targetNamespace="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/3/types">
|
||||
<xsd:include schemaLocation="../../DistributionServiceMsg.xsd"/>
|
||||
</xsd:schema>
|
||||
</types>
|
||||
|
||||
<message name="FordelingsobjektAfsendRequest">
|
||||
<part name="request" element="types:FordelingsobjektAfsendRequest"/>
|
||||
</message>
|
||||
<message name="FordelingsobjektAfsendResponse">
|
||||
<part name="response" element="types:FordelingsobjektAfsendResponse"/>
|
||||
</message>
|
||||
<message name="FordelingskvitteringModtagRequestType">
|
||||
<part name="request" element="types:FordelingskvitteringModtagRequest"/>
|
||||
</message>
|
||||
<message name="FordelingskvitteringModtagResponseType">
|
||||
<part name="response" element="types:FordelingskvitteringModtagResponse"/>
|
||||
</message>
|
||||
<message name="FordelingsmodtagerListRequestType">
|
||||
<part name="request" element="types:FordelingsmodtagerListRequest"/>
|
||||
</message>
|
||||
<message name="FordelingsmodtagerListResponseType">
|
||||
<part name="response" element="types:FordelingsmodtagerListResponse"/>
|
||||
</message>
|
||||
<message name="FordelingsmodtagerValiderRequestType">
|
||||
<part name="request" element="types:FordelingsmodtagerValiderRequest"/>
|
||||
</message>
|
||||
<message name="FordelingsmodtagerValiderResponseType">
|
||||
<part name="response" element="types:FordelingsmodtagerValiderResponse"/>
|
||||
</message>
|
||||
|
||||
<message name="TransportKvitteringType">
|
||||
<part name="fault" element="types:TransportKvittering"/>
|
||||
</message>
|
||||
|
||||
<portType name="DistributionWebServicePort">
|
||||
<operation name="FordelingsobjektAfsend">
|
||||
<input message="tns:FordelingsobjektAfsendRequest"/>
|
||||
<output message="tns:FordelingsobjektAfsendResponse"/>
|
||||
<fault message="tns:TransportKvitteringType" name="TransportKvittering"/>
|
||||
</operation>
|
||||
<operation name="FordelingskvitteringModtag">
|
||||
<input message="tns:FordelingskvitteringModtagRequestType"/>
|
||||
<output message="tns:FordelingskvitteringModtagResponseType"/>
|
||||
<fault message="tns:TransportKvitteringType" name="TransportKvittering"/>
|
||||
</operation>
|
||||
<operation name="FordelingsmodtagerList">
|
||||
<input message="tns:FordelingsmodtagerListRequestType"/>
|
||||
<output message="tns:FordelingsmodtagerListResponseType"/>
|
||||
<fault message="tns:TransportKvitteringType" name="TransportKvittering"/>
|
||||
</operation>
|
||||
<operation name="FordelingsmodtagerValider">
|
||||
<input message="tns:FordelingsmodtagerValiderRequestType"/>
|
||||
<output message="tns:FordelingsmodtagerValiderResponseType"/>
|
||||
<fault message="tns:TransportKvitteringType" name="TransportKvittering"/>
|
||||
</operation>
|
||||
</portType>
|
||||
|
||||
<binding name="DistributionServiceBinding" type="tns:DistributionWebServicePort">
|
||||
<wsp:PolicyReference URI="policies.wsdl#ServiceplatformBindingPolicy"/>
|
||||
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
|
||||
|
||||
<operation name="FordelingsobjektAfsend">
|
||||
<soap:operation soapAction="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/3/port/FordelingsobjektAfsend"/>
|
||||
<input>
|
||||
<soap:body use="literal"/>
|
||||
</input>
|
||||
<output>
|
||||
<soap:body use="literal"/>
|
||||
</output>
|
||||
<fault name="TransportKvittering">
|
||||
<soap:fault name="TransportKvittering" use="literal"/>
|
||||
</fault>
|
||||
</operation>
|
||||
|
||||
<operation name="FordelingskvitteringModtag">
|
||||
<soap:operation soapAction="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/3/port/FordelingskvitteringModtag"/>
|
||||
<input>
|
||||
<soap:body use="literal"/>
|
||||
</input>
|
||||
<output>
|
||||
<soap:body use="literal"/>
|
||||
</output>
|
||||
|
||||
<fault name="TransportKvittering">
|
||||
<soap:fault name="TransportKvittering" use="literal"/>
|
||||
</fault>
|
||||
</operation>
|
||||
|
||||
<operation name="FordelingsmodtagerList">
|
||||
<soap:operation
|
||||
soapAction="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/3/port/FordelingsmodtagerList"/>
|
||||
<input>
|
||||
<soap:body use="literal"/>
|
||||
</input>
|
||||
<output>
|
||||
<soap:body use="literal"/>
|
||||
</output>
|
||||
<fault name="TransportKvittering">
|
||||
<soap:fault name="TransportKvittering" use="literal"/>
|
||||
</fault>
|
||||
</operation>
|
||||
|
||||
<operation name="FordelingsmodtagerValider">
|
||||
<soap:operation soapAction="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/3/port/FordelingsmodtagerValider"/>
|
||||
<input>
|
||||
<soap:body use="literal"/>
|
||||
</input>
|
||||
<output>
|
||||
<soap:body use="literal"/>
|
||||
</output>
|
||||
<fault name="TransportKvittering">
|
||||
<soap:fault name="TransportKvittering" use="literal"/>
|
||||
</fault>
|
||||
</operation>
|
||||
</binding>
|
||||
|
||||
<service name="DistributionService">
|
||||
<port name="DistributionServiceWebServicePort" binding="tns:DistributionServiceBinding">
|
||||
<soap:address location="https://localhost:8080/service/SP/Distribution/3"/>
|
||||
</port>
|
||||
</service>
|
||||
</definitions>
|
||||
83
XSDVisualiser/Rescources/SF2900/wsdl/token/policies.wsdl
Normal file
83
XSDVisualiser/Rescources/SF2900/wsdl/token/policies.wsdl
Normal file
@ -0,0 +1,83 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<wsdl:definitions targetNamespace="http://serviceplatformen.dk/xml/wsdl/soap11/Security/Policy"
|
||||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
|
||||
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
|
||||
xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata"
|
||||
xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
|
||||
|
||||
<wsp:Policy Name="policies.wsdl#ServiceplatformBindingPolicy">
|
||||
<wsp:ExactlyOne>
|
||||
<wsp:PolicyReference URI="#TokenAsymmetricBindingPolicy"/>
|
||||
</wsp:ExactlyOne>
|
||||
</wsp:Policy>
|
||||
|
||||
<wsp:Policy wsu:Id="ServiceplatformBindingPolicy">
|
||||
<wsp:ExactlyOne>
|
||||
<wsp:PolicyReference URI="#TokenAsymmetricBindingPolicy"/>
|
||||
</wsp:ExactlyOne>
|
||||
</wsp:Policy>
|
||||
|
||||
<wsp:Policy wsu:Id="TokenAsymmetricBindingPolicy">
|
||||
<wsp:All>
|
||||
<wsam:Addressing wsp:Optional="false">
|
||||
<wsp:Policy/>
|
||||
</wsam:Addressing>
|
||||
<sp:SignedParts>
|
||||
<sp:Body/>
|
||||
<sp:Header Name="MessageID" Namespace="http://www.w3.org/2005/08/addressing"/>
|
||||
<sp:Header Name="RelatesTo" Namespace="http://www.w3.org/2005/08/addressing"/>
|
||||
<sp:Header Name="Action" Namespace="http://www.w3.org/2005/08/addressing"/>
|
||||
<sp:Header Name="To" Namespace="http://www.w3.org/2005/08/addressing"/>
|
||||
<sp:Header Name="From" Namespace="http://www.w3.org/2005/08/addressing"/>
|
||||
<sp:Header Name="ReplyTo" Namespace="http://www.w3.org/2005/08/addressing"/>
|
||||
<sp:Header Name="Framework" Namespace="urn:liberty:sb:2006-08"/>
|
||||
</sp:SignedParts>
|
||||
<sp:AsymmetricBinding>
|
||||
<wsp:Policy>
|
||||
<sp:InitiatorToken>
|
||||
<wsp:Policy>
|
||||
<sp:SamlToken sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/Never">
|
||||
<wsp:Policy>
|
||||
<sp:WssSamlV20Token11/>
|
||||
</wsp:Policy>
|
||||
</sp:SamlToken>
|
||||
</wsp:Policy>
|
||||
</sp:InitiatorToken>
|
||||
<sp:RecipientToken>
|
||||
<wsp:Policy>
|
||||
<sp:X509Token sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToInitiator">
|
||||
<wsp:Policy>
|
||||
<sp:WssX509V3Token10/>
|
||||
</wsp:Policy>
|
||||
</sp:X509Token>
|
||||
</wsp:Policy>
|
||||
</sp:RecipientToken>
|
||||
<sp:AlgorithmSuite>
|
||||
<wsp:Policy>
|
||||
<sp:Basic256Sha256/>
|
||||
</wsp:Policy>
|
||||
</sp:AlgorithmSuite>
|
||||
<sp:Layout>
|
||||
<wsp:Policy>
|
||||
<sp:Strict/>
|
||||
</wsp:Policy>
|
||||
</sp:Layout>
|
||||
<sp:ProtectTokens/>
|
||||
<sp:IncludeTimestamp/>
|
||||
<sp:OnlySignEntireHeadersAndBody/>
|
||||
</wsp:Policy>
|
||||
</sp:AsymmetricBinding>
|
||||
<sp:SignedSupportingTokens>
|
||||
<wsp:Policy>
|
||||
<sp:IssuedToken sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
|
||||
<sp:RequestSecurityTokenTemplate/>
|
||||
<wsp:Policy>
|
||||
<sp:WssSamlV20Token11/>
|
||||
</wsp:Policy>
|
||||
</sp:IssuedToken>
|
||||
</wsp:Policy>
|
||||
</sp:SignedSupportingTokens>
|
||||
</wsp:All>
|
||||
</wsp:Policy>
|
||||
</wsdl:definitions>
|
||||
@ -0,0 +1,64 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsd:schema xmlns:tns="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/3/types"
|
||||
targetNamespace="http://serviceplatformen.dk/xml/wsdl/soap11/DistributionService/3/types"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified"
|
||||
version="1.0">
|
||||
|
||||
<xsd:element name="TransportKvittering" type="tns:TransportkvitteringType" />
|
||||
<xsd:simpleType name="TransportValideringsKodeType">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="OK"/>
|
||||
<xsd:enumeration value="ADVARSEL"/>
|
||||
<xsd:enumeration value="FEJL"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:complexType name="TransportkvitteringType">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="TransportValideringsKode" type="tns:TransportValideringsKodeType" minOccurs="1" maxOccurs="1"/>
|
||||
<xsd:element name="Begrundelse" type="xsd:string" minOccurs="0" maxOccurs="1"/>
|
||||
<xsd:element name="FejlListe" type="tns:FejlListeType" minOccurs="0" maxOccurs="1"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="FejlListeType">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Fejl" type="tns:FejlType" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="FejlType">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="FejlKode" type="xsd:string" minOccurs="1" maxOccurs="1"/>
|
||||
<xsd:element name="FejlTekst" type="xsd:string" minOccurs="1" maxOccurs="1"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:simpleType name="ForretningsValideringsKodeType">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="MODTAGET"/>
|
||||
<xsd:enumeration value="AFLEVERET"/>
|
||||
<xsd:enumeration value="ACCEPTERET"/>
|
||||
<xsd:enumeration value="AFVIST"/>
|
||||
<xsd:enumeration value="FEJLET"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:simpleType name="KvitteringstypeType">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="Teknisk"/>
|
||||
<xsd:enumeration value="Forretning"/>
|
||||
<xsd:enumeration value="Digital post"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:complexType name="ForretningskvitteringType">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="ForretningsValideringsKode" type="tns:ForretningsValideringsKodeType" minOccurs="1" maxOccurs="1"/>
|
||||
<xsd:element name="Kvitteringstype" type="tns:KvitteringstypeType" minOccurs="1" maxOccurs="1"/>
|
||||
<xsd:element name="Begrundelse" type="xsd:string" minOccurs="0" maxOccurs="1"/>
|
||||
<xsd:element name="FejlListe" type="tns:FejlListeType" minOccurs="0" maxOccurs="1"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:schema>
|
||||
36
XSDVisualiser/Utils/Serialization.cs
Normal file
36
XSDVisualiser/Utils/Serialization.cs
Normal file
@ -0,0 +1,36 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Text.Json;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace XSDVisualiser.Utils
|
||||
{
|
||||
public static class Serialization
|
||||
{
|
||||
public static string ToXml<T>(T obj)
|
||||
{
|
||||
var serializer = new XmlSerializer(typeof(T));
|
||||
var ns = new XmlSerializerNamespaces();
|
||||
ns.Add(string.Empty, string.Empty);
|
||||
using var sw = new Utf8StringWriter();
|
||||
serializer.Serialize(sw, obj, ns);
|
||||
return sw.ToString();
|
||||
}
|
||||
|
||||
public static string ToJson<T>(T obj)
|
||||
{
|
||||
var options = new JsonSerializerOptions
|
||||
{
|
||||
WriteIndented = true,
|
||||
DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
|
||||
};
|
||||
return JsonSerializer.Serialize(obj, options);
|
||||
}
|
||||
|
||||
private sealed class Utf8StringWriter : StringWriter
|
||||
{
|
||||
public override Encoding Encoding => Encoding.UTF8;
|
||||
}
|
||||
}
|
||||
}
|
||||
10
XSDVisualiser/XSDVisualiser.csproj
Normal file
10
XSDVisualiser/XSDVisualiser.csproj
Normal file
@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
Loading…
x
Reference in New Issue
Block a user