public static SitecoreInstance GetCorrectSpeakConfig() { var doc = new XmlDocument() .Create(AspnetPageExtendersRootNode) .Add(@"/configuration/sitecore", "pipelines") .Add(@"/configuration/sitecore/pipelines", "mvc.renderPageExtenders"); foreach (var aspnetSpeakProcessor in AspnetSpeakProcessors) { var processor = string.Format(ExtenderFormat, aspnetSpeakProcessor); doc.Add(AspnetPageExtendersRootNode, processor); } foreach (var mvcSpeakProcessor in MvcSpeakProcessors) { var processor = string.Format(ProcessorFormat, mvcSpeakProcessor); doc.Add(MvcPageExtendersRootNode, processor); } return(new SitecoreInstance { Configuration = doc, Version = new SitecoreVersion(8, 0, 0) }); }
// Start a snapshot at the root object, using own namespace manager. // Creates an XElement representing this object, and appends it as the root // element of the Document. // // The Document must not yet have a root element Additionally, the supplied // schemaManager must be populated with any application-level namespaces // referenced in the document that the parentElement resides within. // (Normally this is achieved simply by using AppendXml passing in a new // schemaManager - see ToXml() or XmlSnapshot). private Place AppendXml(INakedObjectAdapter nakedObjectAdapter) { var fullyQualifiedClassName = nakedObjectAdapter.Spec.FullName; Schema.SetUri(fullyQualifiedClassName); // derive URI from fully qualified name var place = ObjectToElement(nakedObjectAdapter); var element = place.XmlElement; var xsElementElement = element.Annotation <XElement>(); XmlDocument.Add(element); XsdElement.Add(xsElementElement); Schema.SetTargetNamespace(XsdDocument, fullyQualifiedClassName); var schemaLocationFileName = fullyQualifiedClassName + ".xsd"; Schema.AssignSchema(XmlDocument, fullyQualifiedClassName, schemaLocationFileName); XmlElement = element; SchemaLocationFileName = schemaLocationFileName; return(place); }
// Creates an XElement representing this object, and appends it as the root // element of the Document. // // The Document must not yet have a root element Additionally, the supplied // schemaManager must be populated with any application-level namespaces // referenced in the document that the parentElement resides within. // (Normally this is achieved simply by using AppendXml passing in a new // schemaManager - see ToXml() or XmlSnapshot). private Place AppendXml(INakedObject nakedObject) { Log.Debug("appendXml(" + DoLog("obj", nakedObject) + "')"); string fullyQualifiedClassName = nakedObject.Spec.FullName; Schema.SetUri(fullyQualifiedClassName); // derive URI from fully qualified name Place place = ObjectToElement(nakedObject); XElement element = place.XmlElement; var xsElementElement = element.Annotation <XElement>(); Log.Debug("appendXml(NO): add as element to XML doc"); XmlDocument.Add(element); Log.Debug("appendXml(NO): add as xs:element to xs:schema of the XSD document"); XsdElement.Add(xsElementElement); Log.Debug("appendXml(NO): set target name in XSD, derived from FQCN of obj"); Schema.SetTargetNamespace(XsdDocument, fullyQualifiedClassName); Log.Debug("appendXml(NO): set schema location file name to XSD, derived from FQCN of obj"); string schemaLocationFileName = fullyQualifiedClassName + ".xsd"; Schema.AssignSchema(XmlDocument, fullyQualifiedClassName, schemaLocationFileName); Log.Debug("appendXml(NO): copy into snapshot obj"); XmlElement = element; SchemaLocationFileName = schemaLocationFileName; return(place); }
public void XmlCreationTest() { string expected = "<Root><Item1>1</Item1><Item2 id=\"test\">2</Item2><Item3>3</Item3><Item4><SubItem1>s1</SubItem1><SubItem2>s2</SubItem2></Item4></Root>"; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Add("Root", xmlDoc.NewElement("Item1", "1"), xmlDoc.NewElement("Item2", new[] { "id", "test" }, "2"), xmlDoc.NewElement("Item3", "3"), xmlDoc.NewElement("Item4", xmlDoc.NewElement("SubItem1", "s1"), xmlDoc.NewElement("SubItem2", "s2"))); Assert.AreEqual(expected, xmlDoc.InnerXml); }
public void AddTest() { { var doc1 = new XmlDocument().Create("/root/test1"); var root = doc1.DocumentElement; Assert.IsNotNull(root); var doc2 = doc1.Add(root, "/test2"); Assert.AreEqual(doc1, doc2); root = doc1.DocumentElement; Assert.IsNotNull(root); Assert.AreEqual("root", root.Name); Assert.AreEqual(2, root.ChildNodes.Count); var test1 = root.ChildNodes[0]; Assert.IsNotNull(test1); Assert.AreEqual("test1", test1.Name); var test2 = root.ChildNodes[1]; Assert.IsNotNull(test2); Assert.AreEqual("test2", test2.Name); } { var doc1 = new XmlDocument().Create("/root/test1"); var root = doc1.DocumentElement; Assert.IsNotNull(root); var doc2 = doc1.Add(root, "/test2[@hello='123']"); Assert.AreEqual(doc1, doc2); root = doc1.DocumentElement; Assert.IsNotNull(root); Assert.AreEqual("root", root.Name); Assert.AreEqual(2, root.ChildNodes.Count); var test1 = root.ChildNodes[0]; Assert.IsNotNull(test1); Assert.AreEqual("test1", test1.Name); var test2 = root.ChildNodes[1] as XmlElement; Assert.IsNotNull(test2); Assert.AreEqual("test2", test2.Name); Assert.AreEqual("123", test2.GetAttribute("hello")); } }