Open XML SDK by Microsoft
OpenXmlPackageException
with an inner UriFormatException
) (#1644)mailto:person@
)OpenXmlElement
(#1476)IFeatureCollection
can now be enumerated and has a helpful debug view to see what features are registered (#1452)DocumentFormat.OpenXml.Office.PowerPoint.Y2023.M02.Main
namespaceDocumentFormat.OpenXml.Office.PowerPoint.Y2022.M03.Main
namespaceDocumentFormat.OpenXml.Office.SpreadSheetML.Y2021.ExtLinks2021
namespaceIDisposableFeature
is now a part of the framework package and is available by default on a package or part.OpenXmlPackage.Package
to DocumentFormat.OpenXml.Packaging.IPackage
instead of System.IO.Packaging.Package
with a similar API surfaceEnumValue<T>
now is used to box a struct rather than a System.Enum
. This allows us to enable behavior on it without resorting to reflectionAddImagePart
) are now implemented as extension methods off of a new marker interface ISupportedRelationship<T>
ImagePartType
) is no longer an enum, but a static class to expose well-known part types as structs. Now any method to define a new content-type/extension pair can be called with the new PartTypeInfo
struct that will contain the necessary information.OpenXmlPackage.CanSave
is now an instance property (#1307)OpenXmlSettings.RelationshipErrorHandlerFactory
and associated types and replaced with a built-in mechanism to enable thisIdPartPair
is now a readonly struct rather than a classPartExtensionProvider
to IPartExtensionFeature
and reduced its surface area to only two methods (instead of a full Dictionary<,>
). The property to access this off of OpenXmlPackage
has been removed, but may be accessed via Features.Get<IPartExtensionFeature>()
if needed.OpenXmlPart
/OpenXmlContainer
/OpenXmlPackage
and derived types now have internal constructors (these had internal abstract methods so most likely weren't subclassed externally)OpenXmlElementList
is now a struct that implements IEnumerable<OpenXmlElement>
and IReadOnlyList<OpenXmlElement>
where available (#1429)OpenXmlPartReader
are available now for each package type (i.e. WordprocessingDocumentPartReader
, SpreadsheetDocumentPartReader
, PresentationDocumentPartReader
), and the previous TypedOpenXmlPartReader
has been removed. (#1403)Model3D
now represents the modified xml element tag name am3d.model3d
(Previously am3d.model3D
)DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotRichData.PivotCacheHasRichValuePivotCacheRichInfo
DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotRichData.RichDataPivotCacheGuid
SchemaAttrAttribute
(#1316)ChildElementInfoAttribute
(#1316)OpenXmlSimpleType.TextValue
. This property was never meant to be used externally (#1316)readonly
(#1282)OpenXmlPackage.Close
in favor of Dispose
(#1373)OpenXmlPackage.SaveAs
in favor of Clone
(#1376)DO NOT USE THIS RELEASE
OpenXmlElementList
is now a struct that implements IEnumerable<OpenXmlElement>
and IReadOnlyList<OpenXmlElement>
(where available)OpenXmlPartReader
are available now for each package type (i.e. WordprocessingDocumentPartReader
, SpreadsheetDocumentPartReader
, PresentationDocumentPartReader
), and the previous TypedOpenXmlPartReader
has been removed.mailto:person@
)SchemaAttrAttribute
ChildElementInfoAttribute
OpenXmlSimpleType.TextValue
. This property was never meant to be used externallyreadonly
OpenXmlPackage.Close
in favor of Dispose (#1373)OpenXmlPackage.SaveAs
in favor of Clone (#1376)OpenXmlPackage.Package
property. A OpenXmlPackage
is now backed by an internal (for now) type IPackage
instead of System.IO.Packaging.Package
EnumValue<T>
now is used to box a struct rather than a System.Enum
. This allows us to enable behavior on it without resorting to reflectionAddImagePart
) are now implemented as extension methods off of a new marker interface ISupportedRelationship<T>
ImagePartType
) is no longer an enum, but a static class to expose well-known part types as structs. Now any method to define a new content-type/extension pair can be called with the new PartTypeInfo
struct that will contain the necessary information.OpenXmlPackage.CanSave
is now an instance property (#1307)OpenXmlSettings.RelationshipErrorHandlerFactory
and associated types and replaced with a built-in mechanism to enable thisIdPartPair
is now a readonly struct rather than a classIDisposableFeature
is now a part of the framework package and is available by default on a package or part.Features.Get<IPartExtensionFeature>()
if needed.OpenXmlPart
/OpenXmlContainer
/OpenXmlPackage
and derived types now have internal constructors (these had internal abstract methods so most likely weren't subclassed externally)OpenXmlSimpleType.TextValue
as obsolete. This property was never meant to be used externally (#1284)OpenXmlPackage.Package
as obsolete. This will be an implementation detail in future versions and won't be accessible (#1306)OpenXmlPackage.Close
as obsolete. This will be removed in a later release, use Dispose instead (#1371)OpenXmlPackage.SaveAs
as obsolete as it will be removed in a future version (#1378)Thanks to the following for their contributions:
@Asbjoedt
@f1nzer @rstm-sf