| File: System\Xml\Schema\XmlSchemaInfo.cs | Web Access |
| Project: src\runtime\src\libraries\System.Private.Xml\src\System.Private.Xml.csproj (System.Private.Xml) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Collections; using System.Xml; namespace System.Xml.Schema { public class XmlSchemaInfo : IXmlSchemaInfo { private bool _isDefault; private bool _isNil; private XmlSchemaElement? _schemaElement; private XmlSchemaAttribute? _schemaAttribute; private XmlSchemaType? _schemaType; private XmlSchemaSimpleType? _memberType; private XmlSchemaValidity _validity; private XmlSchemaContentType _contentType; public XmlSchemaInfo() { Clear(); } internal XmlSchemaInfo(XmlSchemaValidity validity) : this() { _validity = validity; } public XmlSchemaValidity Validity { get { return _validity; } set { _validity = value; } } public bool IsDefault { get { return _isDefault; } set { _isDefault = value; } } public bool IsNil { get { return _isNil; } set { _isNil = value; } } public XmlSchemaSimpleType? MemberType { get { return _memberType; } set { _memberType = value; } } public XmlSchemaType? SchemaType { get { return _schemaType; } set { _schemaType = value; if (_schemaType != null) { //Member type will not change its content type _contentType = _schemaType.SchemaContentType; } else { _contentType = XmlSchemaContentType.Empty; } } } public XmlSchemaElement? SchemaElement { get { return _schemaElement; } set { _schemaElement = value; if (value != null) { //Setting non-null SchemaElement means SchemaAttribute should be null _schemaAttribute = null; } } } public XmlSchemaAttribute? SchemaAttribute { get { return _schemaAttribute; } set { _schemaAttribute = value; if (value != null) { //Setting non-null SchemaAttribute means SchemaElement should be null _schemaElement = null; } } } public XmlSchemaContentType ContentType { get { return _contentType; } set { _contentType = value; } } internal XmlSchemaType? XmlType { get { if (_memberType != null) { return _memberType; } return _schemaType; } } internal bool HasDefaultValue { get { return _schemaElement != null && _schemaElement.ElementDecl!.DefaultValueTyped != null; } } internal bool IsUnionType { get { if (_schemaType == null || _schemaType.Datatype == null) { return false; } return _schemaType.Datatype.Variety == XmlSchemaDatatypeVariety.Union; } } internal void Clear() { _isNil = false; _isDefault = false; _schemaType = null; _schemaElement = null; _schemaAttribute = null; _memberType = null; _validity = XmlSchemaValidity.NotKnown; _contentType = XmlSchemaContentType.Empty; } } }