示例#1
0
        public void Test_mapping_complex_type_with_complex_element_to_single_acc()
        {
            var mappingFileName = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\SchemaMappingTests\mapping_complex_type_with_complex_element_to_single_acc\mapping.mfd");
            var xsdFileName     = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\SchemaMappingTests\mapping_complex_type_with_complex_element_to_single_acc\invoice\maindoc\UBL-Invoice-2.0.xsd");

            SchemaMapping mappings = CreateSchemaMapping(mappingFileName, xsdFileName);

            var expectedSimpleTypeMappings = new List <SimpleTypeToCdtMapping>();


            var issueDateTypeMapping = new ComplexTypeToCdtMapping("Issue", "IssueDateType", new List <ElementMapping>())
            {
                TargetCdt = cdtDateTime
            };


            var orderReferenceTypeMapping = new ComplexTypeToAccMapping("OrderReference", "OrderReferenceType",
                                                                        new List <ElementMapping>
            {
                new AttributeOrSimpleElementOrComplexElementToBccMapping(new SourceItem("IssueDate", null, XsdObjectType.Element, null), bccIssue, issueDateTypeMapping),
            });

            var expectedComplexTypeMappings = new List <IMapping>
            {
                issueDateTypeMapping,
                orderReferenceTypeMapping,
            };

            var expectedRootElementMapping = new AsmaMapping(new SourceItem("OrderReference", null, XsdObjectType.Element, null))
            {
                TargetMapping = orderReferenceTypeMapping
            };

            AssertMappings(mappings, expectedComplexTypeMappings, expectedSimpleTypeMappings, expectedRootElementMapping);
        }
示例#2
0
        public void Test_mapping_simple_element_and_attributes_to_acc_with_mapping_function_split()
        {
            var mappingFileName = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\SchemaMappingTests\mapping_simple_element_and_attributes_to_acc_with_mapping_function_split\mapping.mfd");
            var xsdFileName     = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\SchemaMappingTests\mapping_simple_element_and_attributes_to_acc_with_mapping_function_split\source.xsd");

            SchemaMapping mappings = CreateSchemaMapping(mappingFileName, xsdFileName);

            SimpleTypeToCdtMapping stringMapping = new SimpleTypeToCdtMapping("String", cdtText);

            var expectedSimpleTypeMappings = new List <SimpleTypeToCdtMapping>
            {
                stringMapping,
            };


            var addressTypeMapping = new ComplexTypeToAccMapping("Address", "AddressType",
                                                                 new List <ElementMapping>
            {
                new SplitMapping(new SourceItem("Street", null, XsdObjectType.Element, null), new[] { bccStreetName, bccBuildingNumber }, new [] { stringMapping, stringMapping }),
                new AttributeOrSimpleElementOrComplexElementToBccMapping(new SourceItem("Town", null, XsdObjectType.Element, null), bccCityName, stringMapping),
            });
            var expectedComplexTypeMappings = new List <IMapping>
            {
                addressTypeMapping,
            };

            var expectedRootElementMapping = new AsmaMapping(new SourceItem("Address", null, XsdObjectType.Element, null))
            {
                TargetMapping = addressTypeMapping
            };

            AssertMappings(mappings, expectedComplexTypeMappings, expectedSimpleTypeMappings, expectedRootElementMapping);
        }
示例#3
0
        public void Test_mapping_complex_type_with_simple_elements_and_attributes_to_cdt()
        {
            var mappingFileName = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\SchemaMappingTests\mapping_complex_type_with_simple_elements_and_attributes_to_cdt\mapping.mfd");
            var xsdFileName     = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\SchemaMappingTests\mapping_complex_type_with_simple_elements_and_attributes_to_cdt\source.xsd");

            SchemaMapping mappings = CreateSchemaMapping(mappingFileName, xsdFileName);

            var textTypeMapping = new ComplexTypeToCdtMapping("Text", "TextType",
                                                              new List <ElementMapping>
            {
                new AttributeOrSimpleElementToSupMapping(new SourceItem("Language", null, XsdObjectType.Attribute, null), supTextLanguage),
                new AttributeOrSimpleElementToSupMapping(new SourceItem("LanguageLocale", null, XsdObjectType.Attribute, null), supTextLanguageLocale),
            });

            var addressTypeMapping = new ComplexTypeToAccMapping("Address", "AddressType",
                                                                 new List <ElementMapping>
            {
                new AttributeOrSimpleElementOrComplexElementToBccMapping(new SourceItem("CityName", null, XsdObjectType.Element, null), bccCityName, textTypeMapping),
            });


            var expectedComplexTypeMappings = new List <IMapping>
            {
                textTypeMapping,
                addressTypeMapping,
            };

            var expectedRootElementMapping = new AsmaMapping(new SourceItem("Address", null, XsdObjectType.Element, null))
            {
                TargetMapping = addressTypeMapping
            };

            AssertMappings(mappings, expectedComplexTypeMappings, new List <SimpleTypeToCdtMapping>(), expectedRootElementMapping);
        }
示例#4
0
        public void Test_mapping_complex_type_with_simple_elements_all_to_single_acc()
        {
            var mappingFileName = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\SchemaMappingTests\mapping_complex_type_with_simple_elements_all_to_single_acc\mapping.mfd");
            var xsdFileName     = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\SchemaMappingTests\mapping_complex_type_with_simple_elements_all_to_single_acc\source.xsd");

            SchemaMapping mappings = CreateSchemaMapping(mappingFileName, xsdFileName);

            SimpleTypeToCdtMapping stringMapping = new SimpleTypeToCdtMapping("String", cdtText);
            var expectedSimpleTypeMappings       = new List <SimpleTypeToCdtMapping>
            {
                stringMapping,
            };


            var addressTypeMapping = new ComplexTypeToAccMapping("Address", "AddressType",
                                                                 new List <ElementMapping>
            {
                new AttributeOrSimpleElementOrComplexElementToBccMapping(new SourceItem("StreetName", null, XsdObjectType.Element, null), bccCityName, stringMapping),
                new AttributeOrSimpleElementOrComplexElementToBccMapping(new SourceItem("CityName", null, XsdObjectType.Element, null), bccCityName, stringMapping),
                new AttributeOrSimpleElementOrComplexElementToBccMapping(new SourceItem("CountryName", null, XsdObjectType.Element, null), bccCountryName, stringMapping),
            });
            var expectedComplexTypeMappings = new List <IMapping>
            {
                addressTypeMapping,
            };

            var expectedRootElementMapping = new AsmaMapping(new SourceItem("Address", null, XsdObjectType.Element, null))
            {
                TargetMapping = addressTypeMapping
            };

            AssertMappings(mappings, expectedComplexTypeMappings, expectedSimpleTypeMappings, expectedRootElementMapping);
        }
示例#5
0
        public void Test_mapping_two_complex_types_with_complex_elements_to_duplicated_bcc()
        {
            var mappingFileName = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\SchemaMappingTests\mapping_two_complex_types_with_complex_elements_to_duplicated_bcc\mapping.mfd");
            var xsdFileName     = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\SchemaMappingTests\mapping_two_complex_types_with_complex_elements_to_duplicated_bcc\source.xsd");

            SchemaMapping mappings = CreateSchemaMapping(mappingFileName, xsdFileName);

            var textTypeToTextMapping = new ComplexTypeToCdtMapping("Text", "TextType",
                                                                    new List <ElementMapping>
            {
                new AttributeOrSimpleElementToSupMapping(new SourceItem("Language", null, XsdObjectType.Attribute, null), supTextLanguage),
            });

            var austrianAddressTypeMapping = new ComplexTypeToAccMapping("AustrianAddress", "AustrianAddressType",
                                                                         new List <ElementMapping>
            {
                new AttributeOrSimpleElementOrComplexElementToBccMapping(new SourceItem("CityName", null, XsdObjectType.Element, null), bccCityName, textTypeToTextMapping),
            });

            var indianAddressTypeMapping = new ComplexTypeToAccMapping("IndianAddress", "IndianAddressType",
                                                                       new List <ElementMapping>
            {
                new AttributeOrSimpleElementOrComplexElementToBccMapping(new SourceItem("CityName", null, XsdObjectType.Element, null), bccCityName, textTypeToTextMapping),
            });

            var addressBookTypeMapping = new ComplexTypeToMaMapping("AddressBook", "AddressBookType",
                                                                    new List <ElementMapping>
            {
                new AsmaMapping(new SourceItem("AustrianAddress", null, XsdObjectType.Element, null))
                {
                    TargetMapping = austrianAddressTypeMapping
                },
                new AsmaMapping(new SourceItem("IndianAddress", null, XsdObjectType.Element, null))
                {
                    TargetMapping = indianAddressTypeMapping
                },
            });


            var expectedComplexTypeMappings = new List <IMapping>
            {
                textTypeToTextMapping,
                austrianAddressTypeMapping,
                indianAddressTypeMapping,
                addressBookTypeMapping,
            };

            var expectedRootElementMapping = new AsmaMapping(new SourceItem("InternationalAddressBook", null, XsdObjectType.Element, null))
            {
                TargetMapping = addressBookTypeMapping
            };

            AssertMappings(mappings, expectedComplexTypeMappings, new List <SimpleTypeToCdtMapping>(), expectedRootElementMapping);
        }
示例#6
0
        public void Test_mapping_with_semisemantic_loss()
        {
            var mappingFileName = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\SchemaMappingTests\mapping_with_semisemantic_loss\mapping.mfd");
            var xsdFileName     = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\SchemaMappingTests\mapping_with_semisemantic_loss\source.xsd");

            SchemaMapping mappings = CreateSchemaMapping(mappingFileName, xsdFileName);

            SimpleTypeToCdtMapping stringMapping = new SimpleTypeToCdtMapping("String", cdtText);
            var expectedSimpleTypeMappings       = new List <SimpleTypeToCdtMapping>
            {
                stringMapping,
            };


            var addressTypeMapping = new ComplexTypeToAccMapping("Address", "AddressType",
                                                                 new List <ElementMapping>
            {
                new AttributeOrSimpleElementOrComplexElementToBccMapping(new SourceItem("StreetName", null, XsdObjectType.Element, null), bccCityName, stringMapping),
                new AttributeOrSimpleElementOrComplexElementToBccMapping(new SourceItem("Town", null, XsdObjectType.Element, null), bccCityName, stringMapping),
            });


            var personTypeMapping = new ComplexTypeToAccMapping("Person", "PersonType",
                                                                new List <ElementMapping>
            {
                new AttributeOrSimpleElementOrComplexElementToBccMapping(new SourceItem("FirstName", null, XsdObjectType.Element, null), bccPartyName, stringMapping),
                new AttributeOrSimpleElementOrComplexElementToBccMapping(new SourceItem("LastName", null, XsdObjectType.Element, null), bccPartyName, stringMapping),
                new ComplexElementToAsccMapping(new SourceItem("HomeAddress", null, XsdObjectType.Element, null), asccPartyResidenceAddress)
                {
                    TargetMapping = addressTypeMapping
                },
                new ComplexElementToAsccMapping(new SourceItem("WorkAddress", null, XsdObjectType.Element, null), asccPartyResidenceAddress)
                {
                    TargetMapping = addressTypeMapping
                },
            });

            var expectedComplexTypeMappings = new List <IMapping>
            {
                addressTypeMapping,
                personTypeMapping
            };

            var expectedRootElementMapping = new AsmaMapping(new SourceItem("Person", null, XsdObjectType.Element, null))
            {
                TargetMapping = personTypeMapping
            };

            AssertMappings(mappings, expectedComplexTypeMappings, expectedSimpleTypeMappings, expectedRootElementMapping);
        }
示例#7
0
        public void Test_mapping_recursive_complex_type()
        {
            var mappingFileName = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\SchemaMappingTests\mapping_recursive_complex_type\mapping.mfd");
            var xsdFileName     = TestUtils.PathToTestResource(@"XSDImporterTest\mapping\SchemaMappingTests\mapping_recursive_complex_type\source.xsd");

            SchemaMapping mappings = CreateSchemaMapping(mappingFileName, xsdFileName);

            SimpleTypeToCdtMapping stringMapping = new SimpleTypeToCdtMapping("String", cdtText);
            var expectedSimpleTypeMappings       = new List <SimpleTypeToCdtMapping>
            {
                stringMapping,
            };


            List <ElementMapping> personTypeChildMappings = new List <ElementMapping>
            {
                new AttributeOrSimpleElementOrComplexElementToBccMapping(new SourceItem("FirstName", null, XsdObjectType.Element, null), bccPartyName, stringMapping),
                new AttributeOrSimpleElementOrComplexElementToBccMapping(new SourceItem("LastName", null, XsdObjectType.Element, null), bccPartyName, stringMapping),
            };
            var personTypeMapping = new ComplexTypeToAccMapping("Person", "PersonType",
                                                                personTypeChildMappings);

            personTypeMapping.AddChildMapping(new ComplexElementToAsccMapping(new SourceItem("Children", null, XsdObjectType.Element, null), asccPartyChildren)
            {
                TargetMapping = personTypeMapping
            });

            var expectedComplexTypeMappings = new List <IMapping>
            {
                personTypeMapping
            };

            var expectedRootElementMapping = new AsmaMapping(new SourceItem("Person", null, XsdObjectType.Element, null))
            {
                TargetMapping = personTypeMapping
            };

            AssertMappings(mappings, expectedComplexTypeMappings, expectedSimpleTypeMappings, expectedRootElementMapping);
        }