Skip to content

Commit

Permalink
Additional O19 types to match Open Specifications (#916)
Browse files Browse the repository at this point in the history
* Additional O19 types
  • Loading branch information
tomjebo committed Apr 16, 2021
1 parent 9a7a224 commit 93e58d4
Show file tree
Hide file tree
Showing 27 changed files with 15,776 additions and 9,795 deletions.
7 changes: 7 additions & 0 deletions src/DocumentFormat.OpenXml/Framework/OpenXmlNamespace.cs
Original file line number Diff line number Diff line change
Expand Up @@ -242,6 +242,8 @@ private static string NormalizeNamespace(in OpenXmlNamespace ns)

// O19
{ "http://schemas.microsoft.com/office/powerpoint/2017/3/main", "p173", FileFormatVersions.Office2019 },
{ "http://schemas.microsoft.com/office/powerpoint/2017/10/main", "p1710", FileFormatVersions.Office2019 },
{ "http://schemas.microsoft.com/office/powerpoint/2018/4/main", "p184", FileFormatVersions.Office2019 },
{ "http://schemas.microsoft.com/office/spreadsheetml/2016/pivotdefaultlayout", "xpdl", FileFormatVersions.Office2019 },
{ "http://schemas.microsoft.com/office/spreadsheetml/2016/01/main", "xlPr", FileFormatVersions.Office2019 },
{ "http://schemas.microsoft.com/office/spreadsheetml/2015/revision2", "xr2", FileFormatVersions.Office2019 },
Expand All @@ -257,9 +259,14 @@ private static string NormalizeNamespace(in OpenXmlNamespace ns)
{ "http://schemas.microsoft.com/office/spreadsheetml/2018/threadedcomments", "xltc", FileFormatVersions.Office2019 },
{ "http://schemas.microsoft.com/office/drawing/2017/03/chart", "c16r3", FileFormatVersions.Office2019 },
{ "http://schemas.microsoft.com/office/spreadsheetml/2017/dynamicarray", "xda", FileFormatVersions.Office2019 },
{ "http://schemas.microsoft.com/office/drawing/2016/11/main", "a1611", FileFormatVersions.Office2019 },
{ "http://schemas.microsoft.com/office/drawing/2016/11/diagram", "dgm1611", FileFormatVersions.Office2019 },
{ "http://schemas.microsoft.com/office/drawing/2016/12/diagram", "dgm1612", FileFormatVersions.Office2019 },
{ "http://schemas.microsoft.com/office/drawing/2016/ink", "aink", FileFormatVersions.Office2019 },
{ "http://schemas.microsoft.com/office/drawing/2017/model3d", "am3d", FileFormatVersions.Office2019 },
{ "http://schemas.microsoft.com/office/drawing/2017/decorative", "adec", FileFormatVersions.Office2019 },
{ "http://schemas.microsoft.com/office/drawing/2018/animation", "aanim", FileFormatVersions.Office2019 },
{ "http://schemas.microsoft.com/office/drawing/2018/animation/model3d", "a3danim", FileFormatVersions.Office2019 },
{ "http://schemas.microsoft.com/office/drawing/2018/hyperlinkcolor", "ahyp", FileFormatVersions.Office2019 },
{ "http://schemas.microsoft.com/office/word/2016/wordml/cid", "w16cid", FileFormatVersions.Office2019 },
{ "http://schemas.microsoft.com/office/drawing/2016/SVG/main", "asvg", FileFormatVersions.Office2019 },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ namespace DocumentFormat.OpenXml.Office2019.Drawing.Diagram11
/// </list>
/// </remark>
#pragma warning disable CS0618 // Type or member is obsolete
[SchemaAttr(103, "autoBuNodeInfoLst")]
[SchemaAttr(106, "autoBuNodeInfoLst")]
#pragma warning restore CS0618 // Type or member is obsolete
public partial class NumberDiagramInfoList : OpenXmlCompositeElement
{
Expand Down Expand Up @@ -66,7 +66,7 @@ public NumberDiagramInfoList(string outerXml) : base(outerXml)
internal override void ConfigureMetadata(ElementMetadata.Builder builder)
{
base.ConfigureMetadata(builder);
builder.SetSchema(103, "autoBuNodeInfoLst");
builder.SetSchema(106, "autoBuNodeInfoLst");
builder.Availability = FileFormatVersions.Office2019;
builder.AddChild<NumberDiagramInfo>();
builder.Particle = new CompositeParticle.Builder(ParticleType.Sequence, 1, 1)
Expand Down Expand Up @@ -94,7 +94,7 @@ internal override void ConfigureMetadata(ElementMetadata.Builder builder)
/// </list>
/// </remark>
#pragma warning disable CS0618 // Type or member is obsolete
[SchemaAttr(103, "buPr")]
[SchemaAttr(106, "buPr")]
#pragma warning restore CS0618 // Type or member is obsolete
public partial class DiagramAutoBullet : OpenXmlCompositeElement
{
Expand Down Expand Up @@ -164,7 +164,7 @@ public DiagramAutoBullet(string outerXml) : base(outerXml)
internal override void ConfigureMetadata(ElementMetadata.Builder builder)
{
base.ConfigureMetadata(builder);
builder.SetSchema(103, "buPr");
builder.SetSchema(106, "buPr");
builder.Availability = FileFormatVersions.Office2019;
builder.AddChild<DocumentFormat.OpenXml.Drawing.NoBullet>();
builder.AddChild<DocumentFormat.OpenXml.Drawing.AutoNumberedBullet>();
Expand Down Expand Up @@ -253,7 +253,7 @@ internal override void ConfigureMetadata(ElementMetadata.Builder builder)
/// </list>
/// </remark>
#pragma warning disable CS0618 // Type or member is obsolete
[SchemaAttr(103, "autoBuNodeInfo")]
[SchemaAttr(106, "autoBuNodeInfo")]
#pragma warning restore CS0618 // Type or member is obsolete
public partial class NumberDiagramInfo : OpenXmlCompositeElement
{
Expand Down Expand Up @@ -323,7 +323,7 @@ public NumberDiagramInfo(string outerXml) : base(outerXml)
internal override void ConfigureMetadata(ElementMetadata.Builder builder)
{
base.ConfigureMetadata(builder);
builder.SetSchema(103, "autoBuNodeInfo");
builder.SetSchema(106, "autoBuNodeInfo");
builder.Availability = FileFormatVersions.Office2019;
builder.AddChild<DiagramAutoBullet>();
builder.AddElement<NumberDiagramInfo>()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

#nullable enable

using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Framework;
using DocumentFormat.OpenXml.Framework.Metadata;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Validation.Schema;
using System;
using System.Collections.Generic;
using System.IO.Packaging;

namespace DocumentFormat.OpenXml.Office2019.Drawing
{
/// <summary>
/// <para>Defines the PictureAttributionSourceURL Class.</para>
/// <para>This class is available in Office 2019 and above.</para>
/// <para>When the object is serialized out as xml, it's qualified name is a1611:picAttrSrcUrl.</para>
/// </summary>
#pragma warning disable CS0618 // Type or member is obsolete
[SchemaAttr(105, "picAttrSrcUrl")]
#pragma warning restore CS0618 // Type or member is obsolete
public partial class PictureAttributionSourceURL : OpenXmlLeafElement
{
/// <summary>
/// Initializes a new instance of the PictureAttributionSourceURL class.
/// </summary>
public PictureAttributionSourceURL() : base()
{
}

/// <summary>
/// <para>id, this property is only available in Office 2019 and later.</para>
/// <para>Represents the following attribute in the schema: r:id</para>
/// </summary>
/// <remark>
/// xmlns:r=http://schemas.openxmlformats.org/officeDocument/2006/relationships
/// </remark>

#pragma warning disable CS0618 // Type or member is obsolete

[SchemaAttr(19, "id")]
#pragma warning restore CS0618 // Type or member is obsolete

public StringValue? Id
{
get => GetAttribute<StringValue>();
set => SetAttribute(value);
}

internal override void ConfigureMetadata(ElementMetadata.Builder builder)
{
base.ConfigureMetadata(builder);
builder.SetSchema(105, "picAttrSrcUrl");
builder.Availability = FileFormatVersions.Office2019;
builder.AddElement<PictureAttributionSourceURL>()
.AddAttribute(19, "id", a => a.Id, aBuilder =>
{
aBuilder.AddValidator(RequiredValidator.Instance);
});
}

/// <inheritdoc/>
public override OpenXmlElement CloneNode(bool deep) => CloneImp<PictureAttributionSourceURL>(deep);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ namespace DocumentFormat.OpenXml.Office2019.Drawing.Diagram12
/// </list>
/// </remark>
#pragma warning disable CS0618 // Type or member is obsolete
[SchemaAttr(104, "spPr")]
[SchemaAttr(107, "spPr")]
#pragma warning restore CS0618 // Type or member is obsolete
public partial class ShapeProperties : OpenXmlCompositeElement
{
Expand Down Expand Up @@ -95,7 +95,7 @@ public ShapeProperties(string outerXml) : base(outerXml)
internal override void ConfigureMetadata(ElementMetadata.Builder builder)
{
base.ConfigureMetadata(builder);
builder.SetSchema(104, "spPr");
builder.SetSchema(107, "spPr");
builder.Availability = FileFormatVersions.Office2019;
builder.AddChild<DocumentFormat.OpenXml.Drawing.Transform2D>();
builder.AddChild<DocumentFormat.OpenXml.Drawing.CustomGeometry>();
Expand Down Expand Up @@ -194,7 +194,7 @@ internal override void ConfigureMetadata(ElementMetadata.Builder builder)
/// </list>
/// </remark>
#pragma warning disable CS0618 // Type or member is obsolete
[SchemaAttr(104, "lstStyle")]
[SchemaAttr(107, "lstStyle")]
#pragma warning restore CS0618 // Type or member is obsolete
public partial class TextListStyleType : OpenXmlCompositeElement
{
Expand Down Expand Up @@ -232,7 +232,7 @@ public TextListStyleType(string outerXml) : base(outerXml)
internal override void ConfigureMetadata(ElementMetadata.Builder builder)
{
base.ConfigureMetadata(builder);
builder.SetSchema(104, "lstStyle");
builder.SetSchema(107, "lstStyle");
builder.Availability = FileFormatVersions.Office2019;
builder.AddChild<DocumentFormat.OpenXml.Drawing.DefaultParagraphProperties>();
builder.AddChild<DocumentFormat.OpenXml.Drawing.Level1ParagraphProperties>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ namespace DocumentFormat.OpenXml.Office2019.Drawing.SVG
/// <para>When the object is serialized out as xml, it's qualified name is asvg:svgBlip.</para>
/// </summary>
#pragma warning disable CS0618 // Type or member is obsolete
[SchemaAttr(108, "svgBlip")]
[SchemaAttr(115, "svgBlip")]
#pragma warning restore CS0618 // Type or member is obsolete
public partial class SVGBlip : OpenXmlLeafElement
{
Expand Down Expand Up @@ -73,7 +73,7 @@ public SVGBlip() : base()
internal override void ConfigureMetadata(ElementMetadata.Builder builder)
{
base.ConfigureMetadata(builder);
builder.SetSchema(108, "svgBlip");
builder.SetSchema(115, "svgBlip");
builder.Availability = FileFormatVersions.Office2019;
builder.AddElement<SVGBlip>()
.AddAttribute(19, "embed", a => a.Embed)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ namespace DocumentFormat.OpenXml.Office2019.Drawing.Chart
/// </list>
/// </remark>
#pragma warning disable CS0618 // Type or member is obsolete
[SchemaAttr(101, "dataDisplayOptions16")]
[SchemaAttr(103, "dataDisplayOptions16")]
#pragma warning restore CS0618 // Type or member is obsolete
public partial class DataDisplayOptions16 : OpenXmlCompositeElement
{
Expand Down Expand Up @@ -65,7 +65,7 @@ public DataDisplayOptions16(string outerXml) : base(outerXml)
internal override void ConfigureMetadata(ElementMetadata.Builder builder)
{
base.ConfigureMetadata(builder);
builder.SetSchema(101, "dataDisplayOptions16");
builder.SetSchema(103, "dataDisplayOptions16");
builder.Availability = FileFormatVersions.Office2019;
builder.AddChild<BooleanFalse>();
builder.Particle = new CompositeParticle.Builder(ParticleType.Sequence, 1, 1)
Expand Down Expand Up @@ -97,7 +97,7 @@ internal override void ConfigureMetadata(ElementMetadata.Builder builder)
/// <para>When the object is serialized out as xml, it's qualified name is c16r3:dispNaAsBlank.</para>
/// </summary>
#pragma warning disable CS0618 // Type or member is obsolete
[SchemaAttr(101, "dispNaAsBlank")]
[SchemaAttr(103, "dispNaAsBlank")]
#pragma warning restore CS0618 // Type or member is obsolete
public partial class BooleanFalse : OpenXmlLeafElement
{
Expand All @@ -118,7 +118,7 @@ public BooleanFalse() : base()

#pragma warning disable CS0618 // Type or member is obsolete

[SchemaAttr(101, "val")]
[SchemaAttr(103, "val")]
#pragma warning restore CS0618 // Type or member is obsolete

public BooleanValue? Val
Expand All @@ -130,10 +130,10 @@ public BooleanFalse() : base()
internal override void ConfigureMetadata(ElementMetadata.Builder builder)
{
base.ConfigureMetadata(builder);
builder.SetSchema(101, "dispNaAsBlank");
builder.SetSchema(103, "dispNaAsBlank");
builder.Availability = FileFormatVersions.Office2019;
builder.AddElement<BooleanFalse>()
.AddAttribute(101, "val", a => a.Val, aBuilder =>
.AddAttribute(103, "val", a => a.Val, aBuilder =>
{
aBuilder.AddValidator(new OfficeVersionValidator(FileFormatVersions.Office2019));
});
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

#nullable enable

using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Drawing;
using DocumentFormat.OpenXml.Framework;
using DocumentFormat.OpenXml.Framework.Metadata;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Validation.Schema;
using System;
using System.Collections.Generic;
using System.IO.Packaging;

namespace DocumentFormat.OpenXml.Office2019.Drawing
{
/// <summary>
/// <para>Defines the Decorative Class.</para>
/// <para>This class is available in Office 2019 and above.</para>
/// <para>When the object is serialized out as xml, it's qualified name is adec:decorative.</para>
/// </summary>
#pragma warning disable CS0618 // Type or member is obsolete
[SchemaAttr(110, "decorative")]
#pragma warning restore CS0618 // Type or member is obsolete
public partial class Decorative : OpenXmlLeafElement
{
/// <summary>
/// Initializes a new instance of the Decorative class.
/// </summary>
public Decorative() : base()
{
}

/// <summary>
/// <para>val, this property is only available in Office 2019 and later.</para>
/// <para>Represents the following attribute in the schema: val</para>
/// </summary>

#pragma warning disable CS0618 // Type or member is obsolete

[SchemaAttr(0, "val")]
#pragma warning restore CS0618 // Type or member is obsolete

public BooleanValue? Val
{
get => GetAttribute<BooleanValue>();
set => SetAttribute(value);
}

internal override void ConfigureMetadata(ElementMetadata.Builder builder)
{
base.ConfigureMetadata(builder);
builder.SetSchema(110, "decorative");
builder.Availability = FileFormatVersions.Office2019;
builder.AddElement<Decorative>()
.AddAttribute(0, "val", a => a.Val);
}

/// <inheritdoc/>
public override OpenXmlElement CloneNode(bool deep) => CloneImp<Decorative>(deep);
}
}

0 comments on commit 93e58d4

Please sign in to comment.