diff --git a/CSharp/Plugins/UniversalEditor.Plugins.Microsoft/DataFormats/Package/OpenPackagingConvention/OPCDataFormat.cs b/CSharp/Plugins/UniversalEditor.Plugins.Microsoft/DataFormats/Package/OpenPackagingConvention/OPCDataFormat.cs index b0f5fbbd..d089af35 100644 --- a/CSharp/Plugins/UniversalEditor.Plugins.Microsoft/DataFormats/Package/OpenPackagingConvention/OPCDataFormat.cs +++ b/CSharp/Plugins/UniversalEditor.Plugins.Microsoft/DataFormats/Package/OpenPackagingConvention/OPCDataFormat.cs @@ -91,6 +91,13 @@ namespace UniversalEditor.DataFormats.Package.OpenPackagingConvention File _rels = new File(); _rels.Name = ".rels"; + RelationshipsObjectModel rels = new RelationshipsObjectModel (); + foreach (Relationship rel in package.Relationships) + { + rels.Relationships.Add (rel); + } + _rels.SetObjectModel (new OPCRelationshipsDataFormat (), rels); + fldr.Files.Add(_rels); fsom.Folders.Add(fldr); diff --git a/CSharp/Plugins/UniversalEditor.Plugins.Microsoft/DataFormats/Package/Relationships/OPCRelationshipsDataFormat.cs b/CSharp/Plugins/UniversalEditor.Plugins.Microsoft/DataFormats/Package/Relationships/OPCRelationshipsDataFormat.cs index 34a9be38..5294d92f 100644 --- a/CSharp/Plugins/UniversalEditor.Plugins.Microsoft/DataFormats/Package/Relationships/OPCRelationshipsDataFormat.cs +++ b/CSharp/Plugins/UniversalEditor.Plugins.Microsoft/DataFormats/Package/Relationships/OPCRelationshipsDataFormat.cs @@ -44,5 +44,30 @@ namespace UniversalEditor.DataFormats.Package.Relationships rels.Relationships.Add(rel); } } + + protected override void BeforeSaveInternal (Stack objectModels) + { + base.BeforeSaveInternal (objectModels); + + RelationshipsObjectModel rels = (objectModels.Pop () as RelationshipsObjectModel); + MarkupObjectModel mom = new MarkupObjectModel (); + + MarkupTagElement tagRelationships = new MarkupTagElement (); + tagRelationships.Attributes.Add ("xmlns", "http://schemas.openxmlformats.org/package/2006/relationships"); + tagRelationships.FullName = "Relationships"; + foreach (Relationship rel in rels.Relationships) + { + MarkupTagElement tagRelationship = new MarkupTagElement (); + tagRelationship.FullName = "Relationship"; + tagRelationship.Attributes.Add ("Target", rel.Target); + tagRelationship.Attributes.Add ("Id", rel.ID); + tagRelationship.Attributes.Add ("Type", rel.Schema); + tagRelationships.Elements.Add (tagRelationship); + } + + mom.Elements.Add (tagRelationships); + + objectModels.Push (mom); + } } }