/
XmlRootAttribute.cs
103 lines (89 loc) · 2.63 KB
/
XmlRootAttribute.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
//------------------------------------------------------------------------------
// </copyright>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics.CodeAnalysis;
using System.Xml.Schema;
namespace System.Xml.Serialization
{
/// <devdoc>
/// <para>[To be supplied.]</para>
/// </devdoc>
[AttributeUsage(AttributeTargets.ReturnValue | AttributeTargets.Class | AttributeTargets.Enum | AttributeTargets.Interface | AttributeTargets.Struct)]
public class XmlRootAttribute : System.Attribute
{
private string? _elementName;
private string? _ns;
private string? _dataType;
private bool _nullable = true;
private bool _nullableSpecified;
/// <devdoc>
/// <para>[To be supplied.]</para>
/// </devdoc>
public XmlRootAttribute()
{
}
/// <devdoc>
/// <para>[To be supplied.]</para>
/// </devdoc>
public XmlRootAttribute(string elementName)
{
_elementName = elementName;
}
/// <devdoc>
/// <para>[To be supplied.]</para>
/// </devdoc>
public string ElementName
{
get { return _elementName ?? string.Empty; }
set { _elementName = value; }
}
/// <devdoc>
/// <para>[To be supplied.]</para>
/// </devdoc>
public string? Namespace
{
get { return _ns; }
set { _ns = value; }
}
/// <devdoc>
/// <para>[To be supplied.]</para>
/// </devdoc>
[AllowNull]
public string DataType
{
get { return _dataType ?? string.Empty; }
set { _dataType = value; }
}
/// <devdoc>
/// <para>[To be supplied.]</para>
/// </devdoc>
public bool IsNullable
{
get { return _nullable; }
set
{
_nullable = value;
_nullableSpecified = true;
}
}
internal bool IsNullableSpecified
{
get { return _nullableSpecified; }
}
internal bool GetIsNullableSpecified()
{
return IsNullableSpecified;
}
internal string Key
{
get { return $"{_ns ?? string.Empty}:{ElementName}:{_nullable}"; }
}
internal string GetKey()
{
return this.Key;
}
}
}