Пример #1
0
        public void Bug643538(FileFormatVersions version)
        {
            var validator = new OpenXmlValidator(version);

            var element = new DocumentFormat.OpenXml.Spreadsheet.OleObject()
            {
                ShapeId = 1
            };

            // the EmbeddedObjectProperties is only valid in Office2010.
            element.EmbeddedObjectProperties = new DocumentFormat.OpenXml.Spreadsheet.EmbeddedObjectProperties();

            // In Office2007, the OleObject has no children.
            var errors = validator.Validate(element);

            Assert.Single(errors);
            Assert.Same(element, errors.First().Node);
            Assert.Equal(ValidationErrorType.Schema, errors.First().ErrorType);
            Assert.Equal("Sch_UnexpectedElementContentExpectingComplex", errors.First().Id);

            // Office2010, no error on OleObject, but an error on EmbeddedObjectProperties.
            var o14Validator = new OpenXmlValidator(FileFormatVersions.Office2010);

            errors = o14Validator.Validate(element);
            Assert.Single(errors);
            Assert.Same(element.EmbeddedObjectProperties, errors.First().Node);
            Assert.Equal(ValidationErrorType.Schema, errors.First().ErrorType);
            Assert.Equal("Sch_IncompleteContentExpectingComplex", errors.First().Id);
        }
Пример #2
0
        private void Bug643538(OpenXmlValidator validator)
        {
            var element = new DocumentFormat.OpenXml.Spreadsheet.OleObject() { ShapeId = 1 };

            // the EmbeddedObjectProperties is only valid in Office2010.
            element.EmbeddedObjectProperties = new DocumentFormat.OpenXml.Spreadsheet.EmbeddedObjectProperties();

            // In Office2007, the OleObject has no children. 
            var errors = validator.Validate(element);
            Assert.Equal(1, errors.Count());
            Assert.Same(element, errors.First().Node);
            Assert.Equal(ValidationErrorType.Schema, errors.First().ErrorType);
            Assert.Equal("Sch_UnexpectedElementContentExpectingComplex", errors.First().Id);

            // Office2010, no error on OleObject, but an error on EmbeddedObjectProperties.
            var o14Validator = new OpenXmlValidator(FileFormatVersions.Office2010);
            errors = o14Validator.Validate(element);
            Assert.Equal(1, errors.Count());
            Assert.Same(element.EmbeddedObjectProperties, errors.First().Node);
            Assert.Equal(ValidationErrorType.Schema, errors.First().ErrorType);
            Assert.Equal("Sch_IncompleteContentExpectingComplex", errors.First().Id);
        }