Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Xml / System / Xml / schema / CompiledIdentityConstraint.cs / 1 / CompiledIdentityConstraint.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
//-----------------------------------------------------------------------------
namespace System.Xml.Schema {
using System.Text;
using System.Collections;
using System.Diagnostics;
using System.Xml.XPath;
using MS.Internal.Xml.XPath;
internal class CompiledIdentityConstraint {
internal XmlQualifiedName name = XmlQualifiedName.Empty;
private ConstraintRole role;
private Asttree selector;
private Asttree[] fields;
internal XmlQualifiedName refer = XmlQualifiedName.Empty;
public enum ConstraintRole {
Unique,
Key,
Keyref
}
public ConstraintRole Role {
get { return this.role; }
}
public Asttree Selector {
get { return this.selector; }
}
public Asttree[] Fields {
get { return this.fields; }
}
public static readonly CompiledIdentityConstraint Empty = new CompiledIdentityConstraint();
private CompiledIdentityConstraint() {}
public CompiledIdentityConstraint(XmlSchemaIdentityConstraint constraint, XmlNamespaceManager nsmgr) {
this.name = constraint.QualifiedName;
//public Asttree (string xPath, bool isField, XmlNamespaceManager nsmgr)
try {
this.selector = new Asttree(constraint.Selector.XPath, false, nsmgr);
}
catch (XmlSchemaException e) {
e.SetSource(constraint.Selector);
throw e;
}
XmlSchemaObjectCollection fields = constraint.Fields;
Debug.Assert(fields.Count > 0);
this.fields = new Asttree[fields.Count];
for(int idxField = 0; idxField < fields.Count; idxField ++) {
try {
this.fields[idxField] = new Asttree(((XmlSchemaXPath)fields[idxField]).XPath, true, nsmgr);
}
catch (XmlSchemaException e) {
e.SetSource(constraint.Fields[idxField]);
throw e;
}
}
if (constraint is XmlSchemaUnique) {
this.role = ConstraintRole.Unique;
}
else if (constraint is XmlSchemaKey) {
this.role = ConstraintRole.Key;
}
else { // XmlSchemaKeyref
this.role = ConstraintRole.Keyref;
this.refer = ((XmlSchemaKeyref)constraint).Refer;
}
}
}
}
// 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
- Calendar.cs
- PaintValueEventArgs.cs
- MsmqInputSessionChannelListener.cs
- InternalBase.cs
- StorageEndPropertyMapping.cs
- httpapplicationstate.cs
- Camera.cs
- XmlArrayItemAttribute.cs
- NaturalLanguageHyphenator.cs
- QilTargetType.cs
- BaseAddressPrefixFilterElement.cs
- SystemWebCachingSectionGroup.cs
- BlobPersonalizationState.cs
- Options.cs
- DateTimeConverter.cs
- SqlUtils.cs
- TdsParserHelperClasses.cs
- ListBoxItemWrapperAutomationPeer.cs
- FilterEventArgs.cs
- UriParserTemplates.cs
- DirectoryNotFoundException.cs
- basemetadatamappingvisitor.cs
- TrackingMemoryStream.cs
- HandlerWithFactory.cs
- QueryParameter.cs
- Cell.cs
- ActivityExecutionContext.cs
- EventLogRecord.cs
- DocumentOrderQuery.cs
- MiniCustomAttributeInfo.cs
- ElementAtQueryOperator.cs
- WebPartDisplayModeCancelEventArgs.cs
- SecUtil.cs
- EmptyElement.cs
- MsmqChannelFactoryBase.cs
- ProcessManager.cs
- WebBrowserNavigatingEventHandler.cs
- _AutoWebProxyScriptEngine.cs
- SessionEndedEventArgs.cs
- XmlSchemaExternal.cs
- DataGridToolTip.cs
- SqlSelectStatement.cs
- sqlstateclientmanager.cs
- EntityDataSourceQueryBuilder.cs
- OpenTypeCommon.cs
- HttpApplicationFactory.cs
- SystemColors.cs
- ClientSideProviderDescription.cs
- XmlExpressionDumper.cs
- SQLChars.cs
- ArrayWithOffset.cs
- SafeMarshalContext.cs
- SizeAnimationBase.cs
- ToolBarOverflowPanel.cs
- SafeCryptoHandles.cs
- Header.cs
- TrackingLocation.cs
- MenuAdapter.cs
- TypeGenericEnumerableViewSchema.cs
- EventQueueState.cs
- ModuleBuilderData.cs
- oledbmetadatacollectionnames.cs
- WinEventTracker.cs
- ContentDisposition.cs
- ExceptionUtil.cs
- Delegate.cs
- Menu.cs
- TypeDescriptorFilterService.cs
- HttpTransportElement.cs
- MutableAssemblyCacheEntry.cs
- RegexTypeEditor.cs
- SerializationBinder.cs
- SystemUdpStatistics.cs
- LockCookie.cs
- ObjectDataSourceMethodEventArgs.cs
- SystemIPInterfaceProperties.cs
- ResourceAttributes.cs
- OptionalRstParameters.cs
- XamlReaderHelper.cs
- ProfileService.cs
- TempFiles.cs
- ActivationServices.cs
- HideDisabledControlAdapter.cs
- LinkButton.cs
- AuthenticationSection.cs
- DesignerVerbCollection.cs
- Stylesheet.cs
- DataGridViewLayoutData.cs
- ThreadPool.cs
- StringAttributeCollection.cs
- ComplexPropertyEntry.cs
- SecurityDocument.cs
- OletxVolatileEnlistment.cs
- IssuedTokenClientElement.cs
- PerformanceCounterNameAttribute.cs
- EndpointNameMessageFilter.cs
- SendKeys.cs
- UnknownBitmapEncoder.cs
- HttpResponseMessageProperty.cs
- EntityException.cs