// // XmlTypeMapElementInfo.cs: // // Author: // Lluis Sanchez Gual (lluis@ximian.com) // // (C) 2002, 2003 Ximian, Inc. http://www.ximian.com // // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to // permit persons to whom the Software is furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be // included in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // using System; using System.Xml.Schema; using System.Collections; namespace System.Xml.Serialization { /// /// Summary description for XmlTypeMapElementInfo. /// internal class XmlTypeMapElementInfo { string _elementName; string _namespace = ""; XmlSchemaForm _form; XmlTypeMapMember _member; string _choiceValue; bool _isNullable; int _nestingLevel; // Only for array items XmlTypeMapping _mappedType; TypeData _type; bool _wrappedElement = true; public XmlTypeMapElementInfo (XmlTypeMapMember member, TypeData type) { _member = member; _type = type; } public TypeData TypeData { get { return _type; } set { _type = value; } } public string ChoiceValue { get { return _choiceValue; } set { _choiceValue = value; } } public string ElementName { get { return _elementName; } set { _elementName = value; } } public string Namespace { get { return _namespace; } set { _namespace = value; } } public string DataTypeNamespace { get { if (_mappedType == null) return XmlSchema.Namespace; else return _mappedType.XmlTypeNamespace; } } public XmlSchemaForm Form { get { return _form; } set { _form = value; } } public XmlTypeMapping MappedType { get { return _mappedType; } set { _mappedType = value; } } public bool IsNullable { get { return _isNullable; } set { _isNullable = value; } } internal bool IsPrimitive { get { return _mappedType == null; } } public XmlTypeMapMember Member { get { return _member; } set { _member = value; } } public int NestingLevel { get { return _nestingLevel; } set { _nestingLevel = value; } } public bool MultiReferenceType { get { if (_mappedType != null) return _mappedType.MultiReferenceType; else return false; } } public bool WrappedElement { get { return _wrappedElement; } set { _wrappedElement = value; } } public bool IsTextElement { get { return ElementName == ""; } set { ElementName = ""; Namespace = string.Empty; } } public bool IsUnnamedAnyElement { get { return ElementName == string.Empty; } set { ElementName = string.Empty; Namespace = string.Empty; } } public override bool Equals (object other) { XmlTypeMapElementInfo oinfo = (XmlTypeMapElementInfo)other; if (_elementName != oinfo._elementName) return false; if (_type.XmlType != oinfo._type.XmlType) return false; if (_namespace != oinfo._namespace) return false; if (_form != oinfo._form) return false; if (_choiceValue != oinfo._choiceValue) return false; if (_type != oinfo._type) return false; if (_isNullable != oinfo._isNullable) return false; return true; } public override int GetHashCode () { return base.GetHashCode (); } } class XmlTypeMapElementInfoList: ArrayList { } }