Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Speech / Src / Recognition / SrgsGrammar / SrgsSubset.cs / 1 / SrgsSubset.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description:
//
// History:
// 5/1/2004 [....] Created from the Kurosawa Code
//---------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Globalization;
using System.Speech.Internal;
using System.Speech.Internal.SrgsParser;
using System.Xml;
namespace System.Speech.Recognition.SrgsGrammar
{
/// TODOC <_include file='doc\Subset.uex' path='docs/doc[@for="Subset"]/*' />
// Note that currently if multiple words are stored in a Subset they are treated internally
// and in the result as multiple tokens.
[Serializable]
[DebuggerDisplay ("{DebuggerDisplayString ()}")]
public class SrgsSubset : SrgsElement, ISubset
{
//*******************************************************************
//
// Constructors
//
//*******************************************************************
#region Constructors
/// TODOC
public SrgsSubset (string text)
: this (text, SubsetMatchingMode.Subsequence)
{
}
/// TODOC
public SrgsSubset (string text, SubsetMatchingMode matchingMode)
{
Helpers.ThrowIfEmptyOrNull (text, "text");
if (matchingMode != SubsetMatchingMode.OrderedSubset && matchingMode != SubsetMatchingMode.Subsequence && matchingMode != SubsetMatchingMode.OrderedSubsetContentRequired && matchingMode != SubsetMatchingMode.SubsequenceContentRequired)
{
throw new ArgumentException (SR.Get (SRID.InvalidSubsetAttribute), "matchingMode");
}
_matchMode = matchingMode;
_text = text.Trim (Helpers._achTrimChars);
Helpers.ThrowIfEmptyOrNull (_text, "text");
}
#endregion
//********************************************************************
//
// Public Properties
//
//*******************************************************************
#region public Properties
/// TODOC <_include file='doc\Subset.uex' path='docs/doc[@for="Subset.Text"]/*' />
public SubsetMatchingMode MatchingMode
{
get
{
return _matchMode;
}
set
{
if (value != SubsetMatchingMode.OrderedSubset && value != SubsetMatchingMode.Subsequence && value != SubsetMatchingMode.OrderedSubsetContentRequired && value != SubsetMatchingMode.SubsequenceContentRequired)
{
throw new ArgumentException (SR.Get (SRID.InvalidSubsetAttribute), "value");
}
_matchMode = value;
}
}
/// TODOC <_include file='doc\Subset.uex' path='docs/doc[@for="Subset.Pronunciation"]/*' />
public string Text
{
get
{
return _text;
}
set
{
Helpers.ThrowIfEmptyOrNull (value, "value");
value = value.Trim (Helpers._achTrimChars);
Helpers.ThrowIfEmptyOrNull (value, "value");
_text = value;
}
}
#endregion
//********************************************************************
//
// Internal methods
//
//********************************************************************
#region Internal methods
internal override void WriteSrgs (XmlWriter writer)
{
// Write _text
writer.WriteStartElement ("sapi", "subset", XmlParser.sapiNamespace);
if (_matchMode != SubsetMatchingMode.Subsequence)
{
string sMatchMode = null;
switch (_matchMode)
{
case SubsetMatchingMode.Subsequence:
sMatchMode = "subsequence";
break;
case SubsetMatchingMode.OrderedSubset:
sMatchMode = "ordered-subset";
break;
case SubsetMatchingMode.SubsequenceContentRequired:
sMatchMode = "subsequence-content-required";
break;
case SubsetMatchingMode.OrderedSubsetContentRequired:
sMatchMode = "ordered-subset-content-required";
break;
}
writer.WriteAttributeString ("sapi", "match", XmlParser.sapiNamespace, sMatchMode);
}
// If an empty string is provided, skip the WriteString
// to have the XmlWrite to put rather than
if (_text != null && _text.Length > 0)
{
writer.WriteString (_text);
}
writer.WriteEndElement ();
}
internal override void Validate (SrgsGrammar grammar)
{
grammar.HasSapiExtension = true;
base.Validate (grammar);
}
internal override string DebuggerDisplayString ()
{
return _text + " [" + _matchMode.ToString () + "]";
}
#endregion
//*******************************************************************
//
// Private Fields
//
//********************************************************************
#region Private Fields
private SubsetMatchingMode _matchMode;
private string _text;
#endregion
}
}
// 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
- ViewStateException.cs
- XmlUtil.cs
- HtmlValidationSummaryAdapter.cs
- HtmlUtf8RawTextWriter.cs
- Wildcard.cs
- DBConnectionString.cs
- CompilationUtil.cs
- ClientViaElement.cs
- OptimisticConcurrencyException.cs
- Activator.cs
- SortQuery.cs
- LinkArea.cs
- LineInfo.cs
- SqlTrackingQuery.cs
- DependencyPropertyDescriptor.cs
- RoutedCommand.cs
- OracleColumn.cs
- DataObjectMethodAttribute.cs
- ACL.cs
- RecipientInfo.cs
- XmlSchemaCompilationSettings.cs
- TreeIterators.cs
- MatrixCamera.cs
- Vector3DConverter.cs
- TextMessageEncoder.cs
- RequestQueue.cs
- NameTable.cs
- SplineKeyFrames.cs
- connectionpool.cs
- SafeHandle.cs
- TdsEnums.cs
- MarshalByValueComponent.cs
- AttributeProviderAttribute.cs
- SafeFileMapViewHandle.cs
- MultiAsyncResult.cs
- StylusPointDescription.cs
- XmlNodeList.cs
- HttpWriter.cs
- AlphaSortedEnumConverter.cs
- TextProperties.cs
- ClusterRegistryConfigurationProvider.cs
- ToolBarPanel.cs
- TreeChangeInfo.cs
- XmlNodeReader.cs
- StylusOverProperty.cs
- NetworkInformationException.cs
- TaiwanCalendar.cs
- XmlTextAttribute.cs
- EntitySqlQueryState.cs
- documentation.cs
- XpsSerializationManager.cs
- ConnectorRouter.cs
- StyleHelper.cs
- WebPartEventArgs.cs
- SocketException.cs
- XmlSchemaException.cs
- FileSystemEventArgs.cs
- SelectedDatesCollection.cs
- ConfigPathUtility.cs
- StoryFragments.cs
- VisualTreeHelper.cs
- TraceContextEventArgs.cs
- PropertyGridCommands.cs
- ViewStateModeByIdAttribute.cs
- LiteralSubsegment.cs
- ImageSource.cs
- Freezable.cs
- BaseProcessor.cs
- BaseCAMarshaler.cs
- WorkflowMarkupSerializer.cs
- RayMeshGeometry3DHitTestResult.cs
- TypeBuilderInstantiation.cs
- InternalControlCollection.cs
- WindowsToolbar.cs
- LocalizedNameDescriptionPair.cs
- MessageQueueInstaller.cs
- NavigationPropertyEmitter.cs
- EastAsianLunisolarCalendar.cs
- WebPartPersonalization.cs
- UriExt.cs
- metadatamappinghashervisitor.cs
- altserialization.cs
- Authorization.cs
- Line.cs
- Run.cs
- ActiveXHost.cs
- StrongNameMembershipCondition.cs
- AutoCompleteStringCollection.cs
- CacheRequest.cs
- Compiler.cs
- FixedSOMTable.cs
- EventToken.cs
- DataGridrowEditEndingEventArgs.cs
- Mappings.cs
- NamespaceList.cs
- InvalidEnumArgumentException.cs
- Rfc2898DeriveBytes.cs
- ProtocolsSection.cs
- BrowserTree.cs
- Stream.cs