SrgsDocument 생성자
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
SrgsDocument 클래스의 새 인스턴스를 초기화합니다.
오버로드
SrgsDocument() |
SrgsDocument 클래스의 새 인스턴스를 초기화합니다. |
SrgsDocument(GrammarBuilder) |
SrgsDocument 개체에서 GrammarBuilder 클래스의 새 인스턴스를 초기화합니다. |
SrgsDocument(SrgsRule) |
SrgsDocument 클래스의 새 인스턴스를 초기화하며 문법의 루트 규칙이 될 SrgsRule 개체를 지정합니다. |
SrgsDocument(String) |
SrgsDocument 인스턴스를 채우는데 사용되는 XML 문서의 위치를 지정하는 SrgsDocument 클래스의 새 인스턴스를 초기화합니다. |
SrgsDocument(XmlReader) |
XML 형식 문법 파일을 참조하는 SrgsDocument의 인스턴스에서의 XmlReader 클래스의 새 인스턴스를 초기화합니다. |
설명
에 대 한 생성자를 사용 하 여 SrgsDocument 클래스의 인스턴스를 만들 수 있습니다 SrgsDocument 에서 GrammarBuilder, SrgsRule, 또는 XmlReader 는 XML 형식의 문법에 대 한 경로 포함 하는 문자열에서 개체 또는 빈 인스턴스를 시작할 수 있습니다 SrgsDocument합니다.
SrgsDocument()
SrgsDocument 클래스의 새 인스턴스를 초기화합니다.
public:
SrgsDocument();
public SrgsDocument ();
Public Sub New ()
예제
다음 예제는 SrgsDocument 개체 및 다음 이라는 공용 규칙을 만듭니다 winnerRule
합니다. 그런 다음 SrgsItem "세계 컵을 찾은 국가:" 라는 문자열로 구성 된를 만들고이 항목을 Elements 규칙의 속성에 추가 합니다. 이 예에서는 다음 두 개의 자세한 규칙을 만듭니다 (ruleEurope
하 고 ruleSAmerica
), 각 중는 SrgsOneOf 3 개를 포함 하는 개체 SrgsItem 개체. 그런 다음 다른 SrgsOneOf 개체가 포함 된 만들어집니다 SrgsRuleRef 참조 하는 개체 ruleEurope
및 ruleSAmerica
합니다. 새 SrgsOneOf 개체에 추가 되는 Elements 속성을 winnerRule
입니다. 그런 다음 세 가지 규칙 (winnerRule
, ruleEurope
, 및 ruleSAmerica
)에 추가 되는 Rules 속성의 SrgsDocument. 마지막으로 세 가지 규칙을 문법의 이진 표현으로 컴파일됩니다.
public void WorldSoccerWinners ()
{
// Create an SrgsDocument, create a new rule
// and set its scope to public.
SrgsDocument document = new SrgsDocument();
SrgsRule winnerRule = new SrgsRule("WorldCupWinner");
winnerRule.Scope = SrgsRuleScope.Public;
// Add the introduction.
winnerRule.Elements.Add(new SrgsItem("A nation that has won the World Cup is: "));
// Create the rule for the European nations.
SrgsOneOf oneOfEurope = new SrgsOneOf(new SrgsItem[] {new SrgsItem("England"),
new SrgsItem("France"), new SrgsItem("Germany"), new SrgsItem("Italy")});
SrgsRule ruleEurope = (new SrgsRule("EuropeanNations", new SrgsElement[] {oneOfEurope}));
// Create the rule for the South American nations.
SrgsOneOf oneOfSAmerica = new SrgsOneOf(new SrgsItem[] {new SrgsItem("Argentina"),
new SrgsItem("Brazil"), new SrgsItem("Uruguay")});
SrgsRule ruleSAmerica = (new SrgsRule("SouthAmericanNations", new SrgsElement[] {oneOfSAmerica}));
// Add references to winnerRule for ruleEurope and ruleSAmerica.
winnerRule.Elements.Add(new SrgsOneOf(new SrgsItem[] {(new SrgsItem
(new SrgsRuleRef(ruleEurope))), new SrgsItem(new SrgsRuleRef(ruleSAmerica))}));
// Add all the rules to the document and make winnerRule
// the root rule of the document.
document.Rules.Add(new SrgsRule[] {winnerRule, ruleEurope, ruleSAmerica});
document.Root = winnerRule;
String fileName = Path.GetTempFileName();
using (FileStream stream = new FileStream(fileName, FileMode.Create))
{
// Compile the grammar to a binary format.
SrgsGrammarCompiler.Compile(document, stream);
}
}
설명
이 생성자는 빈 만듭니다 SrgsDocument 인스턴스. 빈 내 문법을 빌드하 SrgsDocument 인스턴스를 같은 SRGS 요소를 나타내는 클래스의 인스턴스를 추가 SrgsRule, SrgsRuleRef합니다 SrgsOneOf, 및 SrgsItem합니다.
적용 대상
SrgsDocument(GrammarBuilder)
SrgsDocument 개체에서 GrammarBuilder 클래스의 새 인스턴스를 초기화합니다.
public:
SrgsDocument(System::Speech::Recognition::GrammarBuilder ^ builder);
public SrgsDocument (System.Speech.Recognition.GrammarBuilder builder);
new System.Speech.Recognition.SrgsGrammar.SrgsDocument : System.Speech.Recognition.GrammarBuilder -> System.Speech.Recognition.SrgsGrammar.SrgsDocument
Public Sub New (builder As GrammarBuilder)
매개 변수
- builder
- GrammarBuilder
GrammarBuilder 인스턴스를 만드는 데 사용되는 SrgsDocument 개체입니다.
예외
builder
이(가) null
인 경우
예제
다음 예제에서는 빌드는 문법에 대해서는 GrammarBuilder 인스턴스에서 사용 하 여 Choices 개체입니다. 그런 다음 만듭니다는 SrgsDocument 에서 GrammarBuilder 개체입니다.
GrammarBuilder builder = null;
// Create new Choices objects and add countries/regions, and create GrammarBuilder objects.
Choices choicesEurope = new Choices(new string[] { "England", "France", "Germany", "Italy" });
GrammarBuilder europe = new GrammarBuilder(choicesEurope);
Choices choicesSAmerica = new Choices(new string[] { "Argentina", "Brazil", "Uruguay" });
GrammarBuilder sAmerica = new GrammarBuilder(choicesSAmerica);
Choices worldCupWinnerChoices = new Choices(new GrammarBuilder[] {choicesEurope, choicesSAmerica});
// Create new GrammarBuilder from a Choices object.
builder = new GrammarBuilder(worldCupWinnerChoices);
// Create an SrgsDocument object from a GrammarBuilder object.
SrgsDocument document = new SrgsDocument(builder);
적용 대상
SrgsDocument(SrgsRule)
SrgsDocument 클래스의 새 인스턴스를 초기화하며 문법의 루트 규칙이 될 SrgsRule 개체를 지정합니다.
public:
SrgsDocument(System::Speech::Recognition::SrgsGrammar::SrgsRule ^ grammarRootRule);
public SrgsDocument (System.Speech.Recognition.SrgsGrammar.SrgsRule grammarRootRule);
new System.Speech.Recognition.SrgsGrammar.SrgsDocument : System.Speech.Recognition.SrgsGrammar.SrgsRule -> System.Speech.Recognition.SrgsGrammar.SrgsDocument
Public Sub New (grammarRootRule As SrgsRule)
매개 변수
- grammarRootRule
- SrgsRule
SrgsDocument 개체의 root rule
입니다.
예외
grammarRootRule
이(가) null
인 경우
예제
다음 예제에서는 두 개의 규칙을 만듭니다 (chooseCities
고 destCities
) 항공편에 대 한 원본 및 대상 도시를 선택 합니다. 예제를 초기화 합니다 SrgsDocument 인스턴스에서 사용 하 여는 chooseCities
인수로 서 규칙입니다. 이 예제에서는 콘솔에 루트 규칙 이름과 규칙 컬렉션의 콘텐츠를 씁니다.
// Create a rule that contains a list of destination cities.
SrgsRule destCities = new SrgsRule("Destination");
SrgsOneOf toCities = new SrgsOneOf(new string[] { "New York", "Seattle", "Denver" });
destCities.Add(toCities);
// Create a list of origin cities and supporting phrases.
SrgsOneOf fromCities = new SrgsOneOf(new SrgsItem[] {
new SrgsItem("Dallas"), new SrgsItem("Miami"), new SrgsItem("Chicago") });
SrgsItem intro = new SrgsItem("I want to fly from");
SrgsItem to = new SrgsItem("to");
// Create the root rule of the grammar, and assemble the components.
SrgsRule chooseCities = new SrgsRule("Trip");
chooseCities.Add(intro);
chooseCities.Add(fromCities);
chooseCities.Add(to);
chooseCities.Add(new SrgsRuleRef(destCities));
// Create the SrgsDocument and specify the root rule to add.
SrgsDocument bookFlight = new SrgsDocument(chooseCities);
// Add the rule for the destination cities to the document's rule collection.
bookFlight.Rules.Add(new SrgsRule[] { destCities });
// Display the contents of the Rules collection and the name of the root rule.
foreach (SrgsRule rule in bookFlight.Rules)
{
Console.WriteLine("Rule " + rule.Id + " is in the rules collection");
}
Console.WriteLine("Root Rule " + bookFlight.Root.Id);
// Create a Grammar object and load it to the recognizer.
Grammar g = new Grammar(bookFlight);
g.Name = ("City Chooser");
recognizer.LoadGrammarAsync(g);
설명
이 생성자에 지정 된 규칙을 추가 합니다 SrgsRulesCollection 의 합니다 SrgsDocument 로 설정 하는 개체를 Root 문법에 대 한 규칙입니다.
적용 대상
SrgsDocument(String)
SrgsDocument 인스턴스를 채우는데 사용되는 XML 문서의 위치를 지정하는 SrgsDocument 클래스의 새 인스턴스를 초기화합니다.
public:
SrgsDocument(System::String ^ path);
public SrgsDocument (string path);
new System.Speech.Recognition.SrgsGrammar.SrgsDocument : string -> System.Speech.Recognition.SrgsGrammar.SrgsDocument
Public Sub New (path As String)
매개 변수
- path
- String
SRGS XML 파일의 위치입니다.
예외
path
이(가) null
인 경우
path
이 빈 문자열인 경우
예제
다음 예제에서는 새 SrgsDocument "srgsDocumentFile.xml" 명명 된 파일에서입니다.
string srgsDocumentFile = Path.Combine(Path.GetTempPath(), "srgsDocumentFile.xml");
SrgsDocument document = null;
if (File.Exists(srgsDocumentFile))
document = new SrgsDocument(srgsDocumentFile);
적용 대상
SrgsDocument(XmlReader)
XML 형식 문법 파일을 참조하는 SrgsDocument의 인스턴스에서의 XmlReader 클래스의 새 인스턴스를 초기화합니다.
public:
SrgsDocument(System::Xml::XmlReader ^ srgsGrammar);
public SrgsDocument (System.Xml.XmlReader srgsGrammar);
new System.Speech.Recognition.SrgsGrammar.SrgsDocument : System.Xml.XmlReader -> System.Speech.Recognition.SrgsGrammar.SrgsDocument
Public Sub New (srgsGrammar As XmlReader)
매개 변수
- srgsGrammar
- XmlReader
XmlReader 개체는 SrgsDocument XML 인스턴스와 함께 생성되었습니다.
예외
srgsGrammar
이(가) null
인 경우
예제
다음 예제에서는의 새 인스턴스를 만듭니다 SrgsDocument 의 인스턴스에서 XmlReader "srgsDocumentFile.xml" 파일을 참조 하는 합니다.
string srgsDocumentFile = Path.Combine(Path.GetTempPath(), "srgsDocumentFile.xml");
SrgsDocument document = null;
if (File.Exists(srgsDocumentFile))
{
XmlReader reader = XmlReader.Create(srgsDocumentFile);
document = new SrgsDocument(reader);
reader.Close();
}