1 //---------------------------------------------------------------------
2 // <copyright file="ReferenceSchema.cs" company="Microsoft">
3 // Copyright (c) Microsoft Corporation. All rights reserved.
7 // @backupOwner Microsoft
8 //---------------------------------------------------------------------
10 namespace System.Data.EntityModel.SchemaObjectModel
13 using System.Data.Metadata.Edm;
14 using System.Diagnostics;
18 /// Summary description for UsingElement.
20 internal class UsingElement : SchemaElement
22 #region Instance Fields
23 private string _alias = null;
24 private string _namespaceName = null;
27 #region Public Methods
31 /// <param name="parentElement"></param>
32 internal UsingElement(Schema parentElement)
39 #region Public Properties
43 public virtual string Alias
58 public virtual string NamespaceName
62 return _namespaceName;
66 _namespaceName = value;
73 public override string FQName
83 #region Protected Properties
87 protected override bool ProhibitAttribute(string namespaceUri, string localName)
89 if (base.ProhibitAttribute(namespaceUri, localName))
94 if (namespaceUri == null && localName == XmlConstants.Name)
102 protected override bool HandleAttribute(XmlReader reader)
104 if (base.HandleAttribute(reader))
108 else if (CanHandleAttribute(reader, XmlConstants.Namespace))
110 HandleNamespaceAttribute(reader);
113 else if (CanHandleAttribute(reader, XmlConstants.Alias))
115 HandleAliasAttribute(reader);
124 #region Private Methods
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;
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);