[3.0.0-beta1]
Pre-release
Pre-release
Added
- Packages can now be saved on .NET Core and .NET 5+ if constructed with a path or stream (#1307).
- Packages can now support malformed URIs (such as relationships with a URI such as
mailto:person@
)
Changed
- When validation finds incorrect part, it will now include the relationship type rather than a class name
Removed
- .NET Standard 1.3 is no longer a supported platform. .NET Standard 2.0 is the lowest .NET Standard supported.
- Removed unused
SchemaAttrAttribute
- Removed unused
ChildElementInfoAttribute
- Removed
OpenXmlSimpleType.TextValue
. This property was never meant to be used externally - Removed obsolete validation logic from v1 of the SDK
- Removed obsoleted methods from 2.x
- Removed mutable properties on OpenXmlAttribute and marked as
readonly
- Removed
OpenXmlPackage.Close
in favor of Dispose (#1373) - Removed
OpenXmlPackage.SaveAs
in favor of Clone (#1376) - Removed
OpenXmlPackage.Package
property. AOpenXmlPackage
is now backed by an internal (for now) typeIPackage
instead ofSystem.IO.Packaging.Package
Breaking change
- Core infrastructure is now contained in a new package DocumentFormat.OpenXml.Framework. Typed classes are still in DocumentFormat.OpenXml. This means that you may reference DocumentFormat.OpenXml and still compile the same types, but if you want a smaller package, you may rely on just the framework package.
EnumValue<T>
now is used to box a struct rather than aSystem.Enum
. This allows us to enable behavior on it without resorting to reflection- Methods on parts to add child parts (i.e.
AddImagePart
) are now implemented as extension methods off of a new marker interfaceISupportedRelationship<T>
- Part type info enums (i.e.
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 newPartTypeInfo
struct that will contain the necessary information. OpenXmlPackage.CanSave
is now an instance property (#1307)- Removed
OpenXmlSettings.RelationshipErrorHandlerFactory
and associated types and replaced with a built-in mechanism to enable this IdPartPair
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.- Renamed PartExtensionProvider 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)