當前位置: 首頁>>代碼示例>>C#>>正文


C# Compiler.ToParent方法代碼示例

本文整理匯總了C#中System.Xml.Xsl.Compiler.ToParent方法的典型用法代碼示例。如果您正苦於以下問題:C# Compiler.ToParent方法的具體用法?C# Compiler.ToParent怎麽用?C# Compiler.ToParent使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在System.Xml.Xsl.Compiler的用法示例。


在下文中一共展示了Compiler.ToParent方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。

示例1: CompileContent

        private void CompileContent(Compiler compiler) {
            NavigatorInput input = compiler.Input;
            
            if (compiler.Recurse()) {
                do {
                    Debug.Trace(input);
                    switch(input.NodeType) {
                    case XPathNodeType.Element:
                        compiler.PushNamespaceScope();
                        string nspace = input.NamespaceURI;
                        string name   = input.LocalName;

                        if (Keywords.Equals(nspace, input.Atoms.XsltNamespace) && Keywords.Equals(name, input.Atoms.WithParam)) {
                                WithParamAction par = compiler.CreateWithParamAction();
                                CheckDuplicateParams(par.Name);
                                AddAction(par);
                        }
                        else {
                            throw XsltException.UnexpectedKeyword(compiler);
                        }
                        compiler.PopScope();
                        break;
                    case XPathNodeType.Comment:
                    case XPathNodeType.ProcessingInstruction:
                    case XPathNodeType.Whitespace:
                    case XPathNodeType.SignificantWhitespace:
                        break;
                    default:
                        throw new XsltException(Res.Xslt_InvalidContents, Keywords.s_CallTemplate);
                    }
                } while(compiler.Advance());

                compiler.ToParent();
            }
        }
開發者ID:ArildF,項目名稱:masters,代碼行數:35,代碼來源:calltemplateaction.cs

示例2: Compile

        internal override void Compile(Compiler compiler) {
            CompileAttributes(compiler);

            if (compiler.Recurse()) {
                CompileConditions(compiler);
                compiler.ToParent();
            }
        }
開發者ID:ArildF,項目名稱:masters,代碼行數:8,代碼來源:chooseaction.cs

示例3: CheckEmpty

 public void CheckEmpty(Compiler compiler) {
     // Really EMPTY means no content atall but for compatibility with MSXML we allow whitespace
     if (compiler.Recurse()) {
         do {
             if(
                 compiler.Input.NodeType != XPathNodeType.Whitespace            &&
                 compiler.Input.NodeType != XPathNodeType.Comment               &&
                 compiler.Input.NodeType != XPathNodeType.ProcessingInstruction
             ) {
                 compiler.ToParent();
                 throw new XsltException(Res.Xslt_EmptyTagRequired, compiler.Input.LocalName);
             }
         }
         while (compiler.Advance());
         compiler.ToParent();
     }
 }
開發者ID:ArildF,項目名稱:masters,代碼行數:17,代碼來源:compiledaction.cs

示例4: Compile

        internal override void Compile(Compiler compiler) {
            CompileAttributes(compiler);

            if (compiler.Recurse()) {
                CompileTemplate(compiler);
                compiler.ToParent();
            }
        }
開發者ID:ArildF,項目名稱:masters,代碼行數:8,代碼來源:commentaction.cs

示例5: Compile

 internal override void Compile(Compiler compiler) {
     XPathNavigator nav = compiler.Input.Navigator.Clone();
     string name = nav.Name;
     nav.MoveToParent();
     string parent = nav.Name;
     if (compiler.Recurse()) {
         CompileSelectiveTemplate(compiler);
         compiler.ToParent();
     }
 }
開發者ID:ArildF,項目名稱:masters,代碼行數:10,代碼來源:newinstructionaction.cs

示例6: Compile

        internal override void Compile(Compiler compiler) {
            CompileAttributes(compiler);

            if (compiler.Recurse()) {
                CompileTemplate(compiler);
                compiler.ToParent();
            }
            if (this.containedActions == null)
                this.empty = true;
                
        }
開發者ID:ArildF,項目名稱:masters,代碼行數:11,代碼來源:copyaction.cs

示例7: Compile

        internal override void Compile(Compiler compiler) {
            CompileAttributes(compiler);
            if (this.type != ConditionType.ConditionOtherwise) {
                CheckRequiredAttribute(compiler, this.testKey != Compiler.InvalidQueryKey, Keywords.s_Test);
            }

            if (compiler.Recurse()) {
                CompileTemplate(compiler);
                compiler.ToParent();
            }
        }
開發者ID:ArildF,項目名稱:masters,代碼行數:11,代碼來源:ifaction.cs

示例8: Compile

        internal override void Compile(Compiler compiler) {
            CompileAttributes(compiler);
            CheckRequiredAttribute(compiler, this.select, Keywords.s_Select);

            compiler.CanHaveApplyImports = false;
            if (compiler.Recurse()) {
                CompileSortElements(compiler);
                CompileTemplate(compiler);
                compiler.ToParent();
            }
        }
開發者ID:ArildF,項目名稱:masters,代碼行數:11,代碼來源:foreachaction.cs

示例9: Compile

        internal override void Compile(Compiler compiler) {
            CompileAttributes(compiler);
            CheckRequiredAttribute(compiler, this.name, Keywords.s_Name);
            if (compiler.Recurse()) {
                CompileTemplate(compiler);
                compiler.ToParent();

                if (this.select != null && this.containedActions != null) {
                    throw new XsltException(Res.Xslt_VariableCntSel, this.nameStr, this.select);
                }
            }
        }
開發者ID:ArildF,項目名稱:masters,代碼行數:12,代碼來源:withparamaction.cs

示例10: CompileSelectiveTemplate

 internal void CompileSelectiveTemplate(Compiler compiler){
     NavigatorInput input = compiler.Input;
     do{
         if (Keywords.Equals(input.NamespaceURI, input.Atoms.XsltNamespace) &&
             Keywords.Equals(input.LocalName, input.Atoms.Fallback)){
             fallback = true;
             if (compiler.Recurse()){
                 CompileTemplate(compiler);
                 compiler.ToParent();
             }
         }
     }
     while (compiler.Advance());
 }
開發者ID:ArildF,項目名稱:masters,代碼行數:14,代碼來源:newinstructionaction.cs

示例11: Compile

        internal override void Compile(Compiler compiler) {
            this.stylesheetid = compiler.Stylesheetid;
            CompileAttributes(compiler);
            CheckRequiredAttribute(compiler, this.name, Keywords.s_Name);

            Debug.WriteLine("Variable inserted under the key: #" + this.varKey);

            if (compiler.Recurse()) {
                CompileTemplate(compiler);
                compiler.ToParent();

                if (this.select != null && this.containedActions != null) {
                    throw new XsltException(Res.Xslt_VariableCntSel, this.nameStr, this.select);
                }
            }

            this.varKey = compiler.InsertVariable(this);
        }
開發者ID:ArildF,項目名稱:masters,代碼行數:18,代碼來源:variableaction.cs

示例12: Compile

        internal override void Compile(Compiler compiler) {
            CompileAttributes(compiler);
            CheckRequiredAttribute(compiler, this.nameAvt, Keywords.s_Name);

            if(this.nameAvt.IsConstant) {
                this.name    = this.nameAvt.Evaluate(null, null);
                this.nameAvt = null;
                if (! IsProcessingInstructionName(this.name)) {
                    // For Now: set to null to ignore action late;
                   this.name = null;
               }
            }

            if (compiler.Recurse()) {
                CompileTemplate(compiler);
                compiler.ToParent();
            }
        }
開發者ID:ArildF,項目名稱:masters,代碼行數:18,代碼來源:processinginstructionaction.cs

示例13: Compile

        internal override void Compile(Compiler compiler) {
            CompileAttributes(compiler);
            if (this.match == null && this.name == null) {
                Debug.Assert(this.matchKey == Compiler.InvalidQueryKey);
                throw new XsltException(Res.Xslt_TemplateNoAttrib);
            }
            if ( this.matchKey == Compiler.InvalidQueryKey  && this.mode != null ) {
                throw new XsltException(Res.Xslt_InvalidModeAttribute);
            }
            compiler.BeginTemplate(this);

            if (compiler.Recurse()) {
                CompileParameters(compiler);
                CompileTemplate(compiler);

                compiler.ToParent();
            }

            compiler.EndTemplate();
            AnalyzePriority(compiler);
        }
開發者ID:ArildF,項目名稱:masters,代碼行數:21,代碼來源:templateaction.cs

示例14: Compile

        internal override void Compile(Compiler compiler) {
            CompileAttributes(compiler);
            CheckRequiredAttribute(compiler, this.nameAvt, Keywords.s_Name);

            this.name  = PrecalculateAvt(ref this.nameAvt);
            this.nsUri = PrecalculateAvt(ref this.nsAvt  );

            // if both name and ns are not AVT we can calculate qname at compile time and will not need namespace manager anymore
            if (this.nameAvt == null && this.nsAvt == null) {
                if(this.name != Keywords.s_Xmlns) {
                    this.qname = CreateAttributeQName(this.name, this.nsUri, compiler.CloneScopeManager());                    
                }
            }
            else {
                this.manager = compiler.CloneScopeManager();
            }

            if (compiler.Recurse()) {
                CompileTemplate(compiler);
                compiler.ToParent();
            }
        }
開發者ID:ArildF,項目名稱:masters,代碼行數:22,代碼來源:attributeaction.cs

示例15: CompileContent

        private void CompileContent(Compiler compiler) {
            if (compiler.Recurse()) {
                NavigatorInput input = compiler.Input;

                this.text = String.Empty;

                do {
                    switch (input.NodeType) {
                    case XPathNodeType.Text:
                    case XPathNodeType.Whitespace:
                    case XPathNodeType.SignificantWhitespace:
                        this.text += input.Value;
                        break;
                    case XPathNodeType.Comment:
                    case XPathNodeType.ProcessingInstruction:
                        break;
                    default:
                        throw XsltException.UnexpectedKeyword(compiler);
                    }
                } while(compiler.Advance());
                compiler.ToParent();
            }
        }
開發者ID:ArildF,項目名稱:masters,代碼行數:23,代碼來源:textaction.cs


注:本文中的System.Xml.Xsl.Compiler.ToParent方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。