/// <summary> /// Updates this instance of <see cref="UniqueIdentifier"/> . /// </summary> /// <param name="intermediate"> /// if set to <c>true</c> current node is intermediate. <paramref name="Namespace"/> is assigned only /// if this parameter is set to <c>false</c> /// </param> /// <param name="name">The name of the node.</param> /// <param name="instanceDeclaration">if set to <c>true</c> it is instance declaration.</param> internal void Update(bool intermediate, XmlQualifiedName name, bool instanceDeclaration) { UpdateName(name); if (!intermediate) { m_Namespace = XmlQualifiedNameEditor.GetNamespaceOrGenerateIfInstanceIsNull(name); InstanceDeclaration = instanceDeclaration; } }
/// <summary> /// Imports this object. /// </summary> /// <param name="parent">The SymbolicId of the parent.</param> private void Import(XmlQualifiedNameEditor parent) { // check for missing name. if (SymbolicId.IsNull && SymbolicName.IsNull && string.IsNullOrEmpty(BrowseName)) { BrowseName = "BrowseName" + System.Guid.NewGuid().ToString(); } // use the browse name to assign a name. if (SymbolicName.IsNull) { // remove any non-symbol characters. StringBuilder name = new StringBuilder(); for (int ii = 0; ii < BrowseName.Length; ii++) { if (char.IsWhiteSpace(BrowseName[ii])) { name.Append('_'); continue; } if (char.IsLetterOrDigit(BrowseName[ii]) || BrowseName[ii] == '_') { name.Append(BrowseName[ii]); } } // create the symbolic name. SymbolicName = new XmlQualifiedNameEditor(name.ToString(), SymbolicId.NameSpace, this); } // use the name to assign a symbolic id. if (SymbolicId.IsNull) { string id = SymbolicName.Name; if (parent != null) { id = string.Format("{0}_{1}", parent.Name, id); } SymbolicId = new XmlQualifiedNameEditor(id, SymbolicName.NameSpace, this); } }
protected void UpdateName(XmlQualifiedName name) { m_Name = AddSuffix(m_Name, XmlQualifiedNameEditor.GetNameOrGenerateIfInstanceIsNull(name)); }