示例#1
0
        private static SDataSchema BuildReadSchema(XmlSchema xmlSchema)
        {
            var schema = new SDataSchema();

            schema.Read(xmlSchema);
            return(schema);
        }
        public void Write_Properties_Without_Types_Specified_Test()
        {
            var schema = new SDataSchema("http://schemas.sage.com/crmErp/2008")
                             {
                                 Types =
                                     {
                                         new SDataSchemaComplexType("tradingAccount")
                                             {
                                                 Properties =
                                                     {
                                                         new SDataSchemaValueProperty("active")
                                                     }
                                             }
                                     }
                             };

            XPathNavigator nav;
            using (var stream = new MemoryStream())
            {
                schema.Write(stream);
                stream.Seek(0, SeekOrigin.Begin);
            #if NET_2_0 || NET_3_5
                nav = new XPathDocument(stream).CreateNavigator();
            #else
                nav = XDocument.Load(stream).CreateNavigator();
            #endif
            }

            var mgr = new XmlNamespaceManager(nav.NameTable);
            mgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema");

            var resource = nav.SelectSingleNode("xs:schema/xs:complexType[@name='tradingAccount--type']", mgr);
            Assert.That(resource, Is.Not.Null);
            Assert.That(resource.Select("xs:all/xs:element", mgr).Count, Is.EqualTo(1));
            var property = resource.SelectSingleNode("xs:all/xs:element", mgr);
            Assert.That(property, Is.Not.Null);
            Assert.That(property.SelectSingleNode("@name").Value, Is.EqualTo("active"));
            Assert.That(property.SelectSingleNode("@type"), Is.Null);
        }
        public void Write_Enum_Schema_Types_Support_List_Types_Test()
        {
            var schema = new SDataSchema
                             {
                                 Types =
                                     {
                                         new SDataSchemaEnumType("test")
                                             {
                                                 BaseType = XmlTypeCode.String,
                                                 ListName = "test--list",
                                                 ListItemName = "test"
                                             }
                                     }
                             };

            XPathNavigator nav;
            using (var stream = new MemoryStream())
            {
                schema.Write(stream);
                stream.Seek(0, SeekOrigin.Begin);
            #if NET_2_0 || NET_3_5
                nav = new XPathDocument(stream).CreateNavigator();
            #else
                nav = XDocument.Load(stream).CreateNavigator();
            #endif
            }

            var mgr = new XmlNamespaceManager(nav.NameTable);
            mgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema");

            var type = nav.SelectSingleNode("xs:schema/xs:simpleType[@name='test--enum']", mgr);
            Assume.That(type, Is.Not.Null);
            var list = nav.SelectSingleNode("xs:schema/xs:complexType[@name='test--list']", mgr);
            Assert.That(list, Is.Not.Null);
            Assert.That(list.SelectSingleNode("xs:sequence/xs:element[@name='test']", mgr), Is.Not.Null);
        }
        public void Write_Element_Then_Complex_Type_Then_List_Type_Test()
        {
            var schema = new SDataSchema("http://schemas.sage.com/crmErp/2008")
                             {
                                 Types =
                                     {
                                         new SDataSchemaResourceType("tradingAccount")
                                     }
                             };

            XPathNavigator nav;
            using (var stream = new MemoryStream())
            {
                schema.Write(stream);
                stream.Seek(0, SeekOrigin.Begin);
            #if NET_2_0 || NET_3_5
                nav = new XPathDocument(stream).CreateNavigator();
            #else
                nav = XDocument.Load(stream).CreateNavigator();
            #endif
            }

            var mgr = new XmlNamespaceManager(nav.NameTable);
            mgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema");

            var resource = nav.SelectSingleNode("xs:schema/xs:element[@name='tradingAccount']", mgr);
            Assert.That(resource, Is.Not.Null);
            Assert.That(nav.SelectSingleNode("xs:schema/xs:complexType[@name='tradingAccount--type']", mgr), Is.Not.Null);
            Assert.That(nav.SelectSingleNode("xs:schema/xs:complexType[@name='tradingAccount--list']", mgr), Is.Not.Null);
        }
示例#5
0
 private static SDataSchema BuildReadSchema(XmlSchema xmlSchema)
 {
     var schema = new SDataSchema();
     schema.Read(xmlSchema);
     return schema;
 }