public static object DynCreateComment([Implict] Executive executive, object value) { XQueryContext context = (XQueryContext)executive.Owner; XQueryDocument doc = context.CreateDocument(); XQueryDocumentBuilder builder = new XQueryDocumentBuilder(doc); string text = value == Undefined.Value ? "" : NormalizeStringValue((string)value, false, true); if (text.EndsWith("-") || text.Contains("--")) throw new XQueryException(Properties.Resources.XQDY0072); builder.WriteComment(text); XPathFactory.XQueryDynNodeNavigator nav = new XPathFactory.XQueryDynNodeNavigator(doc); nav.MoveTo(doc.CreateNavigator()); return nav; }
public static object DynCreatePi([Implict] Executive executive, object name, object value) { if (name == Undefined.Value) throw new XQueryException(Properties.Resources.XPTY0004, "()", "xs:string | xs:untypedAtomic"); string ncname = (string)name; if (String.Compare(ncname, "xml", true) == 0) throw new XQueryException(Properties.Resources.XQDY0064); string text = value == Undefined.Value ? "" : NormalizeStringValue(value.ToString(), false, true).Trim(); if (text.Contains("?>")) throw new XQueryException(Properties.Resources.XQDY0026); XQueryContext context = (XQueryContext)executive.Owner; XQueryDocument doc = context.CreateDocument(); XQueryDocumentBuilder builder = new XQueryDocumentBuilder(doc); try { builder.WriteProcessingInstruction(XmlConvert.VerifyNCName(ncname), text); } catch (XmlException) { throw new XQueryException(Properties.Resources.FORG0001, name, "xs:NCName"); } XPathFactory.XQueryDynNodeNavigator nav = new XPathFactory.XQueryDynNodeNavigator(doc); nav.MoveTo(doc.CreateNavigator()); return nav; }
public static object DynCreateText([Implict] Executive executive, object value) { if (value == Undefined.Value) return Undefined.Value; XQueryContext context = (XQueryContext)executive.Owner; XQueryDocument doc = context.CreateDocument(); XQueryDocumentBuilder builder = new XQueryDocumentBuilder(doc); builder.WriteString((string)value); XPathFactory.XQueryDynNodeNavigator nav = new XPathFactory.XQueryDynNodeNavigator(doc); nav.MoveTo(doc.CreateNavigator()); return nav; }