Allow inherited EBML data formats to specify whether a particular element has children or not
This commit is contained in:
parent
5430a48b6a
commit
629dbfaa5c
@ -38,6 +38,11 @@ namespace UniversalEditor.DataFormats.Markup.EBML
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual bool HasChildren(long elementID)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
private MarkupElement ReadEBMLElement(Reader reader)
|
||||
{
|
||||
long elementID = ReadEBMLElementID(reader);
|
||||
@ -59,10 +64,23 @@ namespace UniversalEditor.DataFormats.Markup.EBML
|
||||
}
|
||||
else
|
||||
{
|
||||
MarkupStringElement mse = new MarkupStringElement();
|
||||
mse.FullName = "CDATA";
|
||||
mse.Value = Convert.ToBase64String(data);
|
||||
tag.Elements.Add(mse);
|
||||
if (HasChildren(elementID))
|
||||
{
|
||||
Reader rdr = new Reader(new MemoryAccessor(data));
|
||||
while (!rdr.EndOfStream)
|
||||
{
|
||||
MarkupElement el = ReadEBMLElement(rdr);
|
||||
tag.Elements.Add(el);
|
||||
}
|
||||
reader.Close();
|
||||
}
|
||||
else
|
||||
{
|
||||
MarkupStringElement mse = new MarkupStringElement();
|
||||
mse.FullName = "CDATA";
|
||||
mse.Value = Convert.ToBase64String(data);
|
||||
tag.Elements.Add(mse);
|
||||
}
|
||||
}
|
||||
return tag;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user