Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / Xml / System / Xml / schema / SchemaElementDecl.cs / 1 / SchemaElementDecl.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
//-----------------------------------------------------------------------------
namespace System.Xml.Schema {
using System;
using System.Collections;
using System.Diagnostics;
internal sealed class SchemaElementDecl : SchemaDeclBase {
ContentValidator contentValidator;
Hashtable attdefs = new Hashtable();
Hashtable prohibitedAttributes = new Hashtable();
ArrayList tmpDefaultAttdefs;
SchemaAttDef[] defaultAttdefs;
bool isAbstract = false;
bool isNillable = false;
XmlSchemaDerivationMethod block;
bool isIdDeclared;
bool isNotationDeclared;
bool hasRequiredAttribute = false;
bool hasNonCDataAttribute = false;
XmlSchemaAnyAttribute anyAttribute;
CompiledIdentityConstraint[] constraints;
XmlSchemaElement schemaElement;
public static readonly SchemaElementDecl Empty = new SchemaElementDecl();
public SchemaElementDecl() {
}
public SchemaElementDecl(XmlSchemaDatatype dtype) {
Datatype = dtype;
contentValidator = ContentValidator.TextOnly;
}
public SchemaElementDecl(XmlQualifiedName name, String prefix, SchemaType schemaType)
: base(name, prefix) {
}
public static SchemaElementDecl CreateAnyTypeElementDecl() {
SchemaElementDecl anyTypeElementDecl = new SchemaElementDecl();
anyTypeElementDecl.Datatype = DatatypeImplementation.AnySimpleType.Datatype;
return anyTypeElementDecl;
}
public SchemaElementDecl Clone() {
return (SchemaElementDecl) MemberwiseClone();
}
public bool IsAbstract {
get { return isAbstract;}
set { isAbstract = value;}
}
public bool IsNillable {
get { return isNillable;}
set { isNillable = value;}
}
public XmlSchemaDerivationMethod Block {
get { return block; }
set { block = value; }
}
public bool IsIdDeclared {
get { return isIdDeclared;}
set { isIdDeclared = value;}
}
public bool IsNotationDeclared {
get { return isNotationDeclared; }
set { isNotationDeclared = value; }
}
public bool HasDefaultAttribute {
get { return defaultAttdefs != null; }
}
public bool HasRequiredAttribute {
get { return hasRequiredAttribute; }
set { hasRequiredAttribute = value; }
}
public bool HasNonCDataAttribute {
get { return hasNonCDataAttribute; }
set { hasNonCDataAttribute = value; }
}
public ContentValidator ContentValidator {
get { return contentValidator;}
set { contentValidator = value;}
}
public XmlSchemaAnyAttribute AnyAttribute {
get { return anyAttribute; }
set { anyAttribute = value; }
}
public CompiledIdentityConstraint[] Constraints {
get { return constraints; }
set { constraints = value; }
}
public XmlSchemaElement SchemaElement {
get { return schemaElement;}
set { schemaElement = value;}
}
// add a new SchemaAttDef to the SchemaElementDecl
public void AddAttDef(SchemaAttDef attdef) {
attdefs.Add(attdef.Name, attdef);
if (attdef.Presence == SchemaDeclBase.Use.Required || attdef.Presence == SchemaDeclBase.Use.RequiredFixed) {
hasRequiredAttribute = true;
}
if (attdef.Presence == SchemaDeclBase.Use.Default || attdef.Presence == SchemaDeclBase.Use.Fixed) { //Not adding RequiredFixed here
if (tmpDefaultAttdefs == null) {
tmpDefaultAttdefs = new ArrayList();
}
tmpDefaultAttdefs.Add(attdef);
}
}
public void EndAddAttDef() {
if (tmpDefaultAttdefs != null) {
defaultAttdefs = (SchemaAttDef[])tmpDefaultAttdefs.ToArray(typeof(SchemaAttDef));
tmpDefaultAttdefs = null;
}
}
/*
* Retrieves the attribute definition of the named attribute.
* @param name The name of the attribute.
* @return an attribute definition object; returns null if it is not found.
*/
public SchemaAttDef GetAttDef(XmlQualifiedName qname) {
return (SchemaAttDef)attdefs[qname];
}
public Hashtable AttDefs {
get { return attdefs; }
}
public SchemaAttDef[] DefaultAttDefs {
get { return defaultAttdefs; }
}
public Hashtable ProhibitedAttributes {
get { return prohibitedAttributes; }
}
public void CheckAttributes(Hashtable presence, bool standalone) {
foreach(SchemaAttDef attdef in attdefs.Values) {
if (presence[attdef.Name] == null) {
if (attdef.Presence == SchemaDeclBase.Use.Required) {
throw new XmlSchemaException(Res.Sch_MissRequiredAttribute, attdef.Name.ToString());
}
else if (standalone && attdef.IsDeclaredInExternal && (attdef.Presence == SchemaDeclBase.Use.Default || attdef.Presence == SchemaDeclBase.Use.Fixed)) {
throw new XmlSchemaException(Res.Sch_StandAlone, string.Empty);
}
}
}
}
};
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PolicyException.cs
- SectionInformation.cs
- FormViewRow.cs
- ExceptionValidationRule.cs
- SystemIcons.cs
- ProtocolsConfiguration.cs
- EventRouteFactory.cs
- SecureUICommand.cs
- SystemColorTracker.cs
- OracleParameter.cs
- StorageFunctionMapping.cs
- DataReceivedEventArgs.cs
- SQLDecimalStorage.cs
- XmlNotation.cs
- DataGridViewCellStyleChangedEventArgs.cs
- SuppressIldasmAttribute.cs
- ComponentChangedEvent.cs
- ReliabilityContractAttribute.cs
- BehaviorEditorPart.cs
- ComplexBindingPropertiesAttribute.cs
- EventHandlerList.cs
- ComPlusTraceRecord.cs
- Model3DGroup.cs
- X509IssuerSerialKeyIdentifierClause.cs
- JobInputBins.cs
- DefaultPropertyAttribute.cs
- UpDownBase.cs
- UInt32Storage.cs
- HttpHostedTransportConfiguration.cs
- Asn1IntegerConverter.cs
- LongValidator.cs
- RowCache.cs
- SoapIncludeAttribute.cs
- DrawingContextWalker.cs
- HierarchicalDataBoundControlAdapter.cs
- SqlDataSourceView.cs
- MembershipValidatePasswordEventArgs.cs
- LinearQuaternionKeyFrame.cs
- ObjectRef.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- FormView.cs
- StateMachineWorkflowDesigner.cs
- MetafileHeaderWmf.cs
- MenuCommand.cs
- SafeProcessHandle.cs
- DuplexChannelBinder.cs
- FormsAuthenticationUser.cs
- SettingsProviderCollection.cs
- CatalogPartChrome.cs
- DataServiceContext.cs
- WebColorConverter.cs
- GridView.cs
- SettingsSection.cs
- RectKeyFrameCollection.cs
- input.cs
- WebServiceReceiveDesigner.cs
- InfoCardArgumentException.cs
- TextureBrush.cs
- ModuleElement.cs
- GroupItemAutomationPeer.cs
- _emptywebproxy.cs
- WebEncodingValidator.cs
- PersonalizationProvider.cs
- WsdlParser.cs
- DesignerSerializerAttribute.cs
- XmlNodeList.cs
- MessageDecoder.cs
- ForwardPositionQuery.cs
- TextOutput.cs
- APCustomTypeDescriptor.cs
- Group.cs
- SecurityToken.cs
- PackageFilter.cs
- DataListItemEventArgs.cs
- SubstitutionList.cs
- Int32AnimationUsingKeyFrames.cs
- XPathBuilder.cs
- MultiByteCodec.cs
- Panel.cs
- BitmapEffectInputData.cs
- CqlErrorHelper.cs
- InstanceDataCollection.cs
- SqlUserDefinedTypeAttribute.cs
- CharacterBuffer.cs
- AffineTransform3D.cs
- XPathDocumentIterator.cs
- SafeSecurityHandles.cs
- FilteredDataSetHelper.cs
- RSAPKCS1KeyExchangeFormatter.cs
- EncodingInfo.cs
- PeekCompletedEventArgs.cs
- MDIClient.cs
- WindowsScroll.cs
- RepeaterCommandEventArgs.cs
- XmlCompatibilityReader.cs
- RectangleF.cs
- CloudCollection.cs
- UndirectedGraph.cs
- MultipleCopiesCollection.cs
- WindowsRichEditRange.cs