Updates referencesource to .NET 4.7
[mono-project.git] / mcs / class / referencesource / System.Data.Entity / System / Data / EntityModel / SchemaObjectModel / ReferenceSchema.cs
blob5965358fd4f2ac52dba141abefec0366f818097f
1 //---------------------------------------------------------------------
2 // <copyright file="ReferenceSchema.cs" company="Microsoft">
3 // Copyright (c) Microsoft Corporation. All rights reserved.
4 // </copyright>
5 //
6 // @owner Microsoft
7 // @backupOwner Microsoft
8 //---------------------------------------------------------------------
10 namespace System.Data.EntityModel.SchemaObjectModel
12 using System;
13 using System.Data.Metadata.Edm;
14 using System.Diagnostics;
15 using System.Xml;
17 /// <summary>
18 /// Summary description for UsingElement.
19 /// </summary>
20 internal class UsingElement : SchemaElement
22 #region Instance Fields
23 private string _alias = null;
24 private string _namespaceName = null;
25 #endregion
27 #region Public Methods
28 /// <summary>
29 ///
30 /// </summary>
31 /// <param name="parentElement"></param>
32 internal UsingElement(Schema parentElement)
33 : base(parentElement)
37 #endregion
39 #region Public Properties
40 /// <summary>
41 ///
42 /// </summary>
43 public virtual string Alias
45 get
47 return _alias;
49 private set
51 _alias = value;
55 /// <summary>
56 ///
57 /// </summary>
58 public virtual string NamespaceName
60 get
62 return _namespaceName;
64 private set
66 _namespaceName = value;
70 /// <summary>
71 ///
72 /// </summary>
73 public override string FQName
75 get
77 return null;
81 #endregion
83 #region Protected Properties
84 /// <summary>
85 ///
86 /// </summary>
87 protected override bool ProhibitAttribute(string namespaceUri, string localName)
89 if (base.ProhibitAttribute(namespaceUri, localName))
91 return true;
94 if (namespaceUri == null && localName == XmlConstants.Name)
96 return false;
98 return false;
102 protected override bool HandleAttribute(XmlReader reader)
104 if (base.HandleAttribute(reader))
106 return true;
108 else if (CanHandleAttribute(reader, XmlConstants.Namespace))
110 HandleNamespaceAttribute(reader);
111 return true;
113 else if (CanHandleAttribute(reader, XmlConstants.Alias))
115 HandleAliasAttribute(reader);
116 return true;
119 return false;
122 #endregion
124 #region Private Methods
126 /// <summary>
127 ///
128 /// </summary>
129 /// <param name="reader"></param>
130 private void HandleNamespaceAttribute(XmlReader reader)
132 Debug.Assert(String.IsNullOrEmpty(NamespaceName), "Alias must be set only once");
133 ReturnValue<string> returnValue = HandleDottedNameAttribute(reader,NamespaceName, null);
134 if ( returnValue.Succeeded )
135 NamespaceName = returnValue.Value;
138 /// <summary>
139 ///
140 /// </summary>
141 /// <param name="reader"></param>
142 private void HandleAliasAttribute(XmlReader reader)
144 Debug.Assert(String.IsNullOrEmpty(Alias), "Alias must be set only once");
145 Alias = HandleUndottedNameAttribute(reader, Alias);
147 #endregion