internal static void ExpectNoArguments(XmlTransformationLogger log, string transformName, string?argumentString) { if (!string.IsNullOrEmpty(argumentString)) { log.LogWarning(SR.XMLTRANSFORMATION_TransformDoesNotExpectArguments, transformName); } }
internal static void WarnIfMultipleTargets(XmlTransformationLogger log, string transformName, XmlNodeList targetNodes, bool applyTransformToAllTargets) { Debug.Assert(applyTransformToAllTargets == false); if (targetNodes.Count > 1) { log.LogWarning(SR.XMLTRANSFORMATION_TransformOnlyAppliesOnce, transformName); } }
void PreprocessTransformDocument() { HasTransformNamespace = false; foreach (XmlAttribute attribute in _xmlTransformation.SelectNodes("//namespace::*")) { if (attribute.Value.Equals(TransformNamespace, StringComparison.Ordinal)) { HasTransformNamespace = true; break; } } if (HasTransformNamespace) { // This will look for all nodes from our namespace in the document, // and do any initialization work var namespaceManager = new XmlNamespaceManager(new NameTable()); namespaceManager.AddNamespace("xdt", TransformNamespace); XmlNodeList namespaceNodes = _xmlTransformation.SelectNodes("//xdt:*", namespaceManager); foreach (XmlNode node in namespaceNodes) { if (!(node is XmlElement element)) { Debug.Fail("The XPath for elements returned something that wasn't an element?"); continue; } XmlElementContext context = null; try { switch (element.LocalName) { case "Import": context = CreateElementContext(null, element); PreprocessImportElement(context); break; default: _logger.LogWarning(element, SR.XMLTRANSFORMATION_UnknownXdtTag, element.Name); break; } } catch (Exception ex) { if (context != null) { ex = WrapException(ex, context); } _logger.LogErrorFromException(ex); throw new XmlTransformationException(SR.XMLTRANSFORMATION_FatalTransformSyntaxError, ex); } } } }