Actually write out relationship information when saving

This commit is contained in:
Michael Becker 2019-08-16 15:01:10 -04:00
parent 1f0e8845e8
commit e278ba5c16
2 changed files with 32 additions and 0 deletions

View File

@ -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<RelationshipsObjectModel> (new OPCRelationshipsDataFormat (), rels);
fldr.Files.Add(_rels);
fsom.Folders.Add(fldr);

View File

@ -44,5 +44,30 @@ namespace UniversalEditor.DataFormats.Package.Relationships
rels.Relationships.Add(rel);
}
}
protected override void BeforeSaveInternal (Stack<ObjectModel> 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);
}
}
}