/// <summary> /// Executes the query. /// </summary> /// <returns> /// Returns <see langword="true" /> if the task successfully executed; otherwise, <see langword="false" />. /// </returns> protected override bool Process() { if (PopulateSchemaSet() == false) { return(false); } var staticSettings = GetStaticContextSettings(); var query = CompileQuery(staticSettings); if (query == null) { return(false); } if (Plan != null) { Explain(query); } var documentSet = GetDocumentSet(); var dynamicContextSettings = GetDynamicContextSettings(documentSet); LoadCollections(dynamicContextSettings, staticSettings); if (!LoadContextItem(dynamicContextSettings)) { return(false); } if (!SetParameters(dynamicContextSettings, staticSettings)) { return(false); } if (!SetSerializationSettings(query.SerializationSettings)) { return(false); } using (var resultDocumentHandler = new ResultDocumentHandler(this, Output, dynamicContextSettings.BaseOutputURI)) { query.Serialize(resultDocumentHandler, dynamicContextSettings); resultDocumentHandler.Complete(); } return(true); }
/// <summary> /// Performs the transformation. /// </summary> /// <returns> /// Returns <see langword="true" /> if the task successfully executed; otherwise, <see langword="false" />. /// </returns> protected override bool Process() { if (PopulateSchemaSet() == false) { return(false); } var staticSettings = GetStaticContextSettings(); var transform = CompileTransform(staticSettings); // Any errors will already have been reported. if (transform == null) { return(false); } if (Plan != null) { Explain(transform); } transform.SerializationSettings.CloseOutput = true; if (!SetSerializationSettings(transform.SerializationSettings)) { return(false); } var documentSet = GetDocumentSet(); var dynamicContextSettings = GetDynamicContextSettings(documentSet); LoadCollections(dynamicContextSettings, staticSettings); if (!LoadContextItem(dynamicContextSettings)) { return(false); } if (!SetParameters(dynamicContextSettings, staticSettings)) { return(false); } using (var resultDocument = new ResultDocumentHandler(this, Output, dynamicContextSettings.BaseOutputURI)) { if (InitialTemplate != null) { if (InitialMode != null) { throw XdmException.BadStylesheetInitiation(); } var initialTemplateName = ParseQName(InitialTemplate); if (initialTemplateName == null) // TODO: log error { return(false); } transform.CallTemplate(initialTemplateName, dynamicContextSettings, resultDocument); } else if (InitialMode != null) { var initialTemplateMode = ParseQName(InitialMode); if (initialTemplateMode == null) // TODO: log error { return(false); } transform.ApplyTemplates(initialTemplateMode, dynamicContextSettings, resultDocument); } else { transform.ApplyTemplates(dynamicContextSettings, resultDocument); } resultDocument.Complete(); } return(true); }