Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / 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
- HandleExceptionArgs.cs
- DeflateEmulationStream.cs
- XamlWrappingReader.cs
- SharedConnectionListener.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- RetrieveVirtualItemEventArgs.cs
- ListViewDeletedEventArgs.cs
- CoTaskMemUnicodeSafeHandle.cs
- ZipIORawDataFileBlock.cs
- CssClassPropertyAttribute.cs
- OleDbReferenceCollection.cs
- ExpressionCopier.cs
- Baml2006KeyRecord.cs
- SchemaName.cs
- Transactions.cs
- ThaiBuddhistCalendar.cs
- QilDataSource.cs
- BaseHashHelper.cs
- Parser.cs
- InitializationEventAttribute.cs
- ItemsPanelTemplate.cs
- XmlStringTable.cs
- BamlRecordHelper.cs
- TrackingParticipant.cs
- EntityDesignerDataSourceView.cs
- FilePresentation.cs
- AttachedPropertyBrowsableAttribute.cs
- PrintingPermissionAttribute.cs
- DataColumn.cs
- StatusBar.cs
- ProcessModuleCollection.cs
- SQLString.cs
- httpserverutility.cs
- BindingFormattingDialog.cs
- RepeatButton.cs
- SBCSCodePageEncoding.cs
- AttributeQuery.cs
- FilterEventArgs.cs
- CompositeFontFamily.cs
- SchemaImporterExtensionElementCollection.cs
- MultiPageTextView.cs
- JsonMessageEncoderFactory.cs
- SqlWorkflowInstanceStoreLock.cs
- FirstMatchCodeGroup.cs
- HttpRequestBase.cs
- ConnectionManagementElementCollection.cs
- FolderBrowserDialog.cs
- CssTextWriter.cs
- EncoderNLS.cs
- AssemblyFilter.cs
- UndirectedGraph.cs
- System.Data.OracleClient_BID.cs
- NamedPipeConnectionPool.cs
- ClientScriptManager.cs
- WindowProviderWrapper.cs
- CheckBoxBaseAdapter.cs
- TreeViewBindingsEditorForm.cs
- XmlWriterDelegator.cs
- TextEditor.cs
- ZoneLinkButton.cs
- ProfileModule.cs
- TextSelectionHighlightLayer.cs
- Page.cs
- Parsers.cs
- NegotiateStream.cs
- DataGridViewLayoutData.cs
- EditorPart.cs
- OleDbFactory.cs
- TemplatingOptionsDialog.cs
- FileIOPermission.cs
- CDSsyncETWBCLProvider.cs
- AttributeAction.cs
- BrowserDefinition.cs
- TreeViewDesigner.cs
- OleDbConnectionFactory.cs
- DataTemplateSelector.cs
- TypeDescriptor.cs
- InputScope.cs
- ValueType.cs
- XamlStyleSerializer.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- MD5CryptoServiceProvider.cs
- PropertyChangedEventArgs.cs
- BamlVersionHeader.cs
- CounterSample.cs
- ProvidePropertyAttribute.cs
- Bitmap.cs
- RowCache.cs
- BaseComponentEditor.cs
- TextTreeInsertElementUndoUnit.cs
- OpenTypeCommon.cs
- Form.cs
- PersonalizableAttribute.cs
- AssemblyBuilderData.cs
- TraceSection.cs
- SynchronizedInputHelper.cs
- MachineKeyValidationConverter.cs
- StringComparer.cs
- StringHandle.cs
- SslStreamSecurityElement.cs