EBML Schema

Dave Rice <[email protected]>
Newsgroups gmane.comp.multimedia.matroska.devel
Message-ID <[email protected]>
Hi all,

Next in the ebml specification work, I'd like to try and expand the section on EBML semantics in this section: https://github.com/Matroska-Org/ebml-specification/blob/master/specification.markdown#element-template <https://github.com/Matroska-Org/ebml-specification/blob/master/specification.markdown#element-template>, so that we can have more precise language on how to define EBML Elements and handle aspects of their definition such as defaults, ranges, types, descriptions, ids, and mandates. The older RFC Draft by Martin Nilsson used an analogy comparing EBML Semantics to XML Document Type Definitions (DTD), but I think it may be more modern to use an analogy between EBML Semantics and XML Schemas (XSD) and thus define how to make an EBML Schema. I think having this concept be clearly expressed will make the development of the Matroska specification (as an EBML Schema itself) a lot more clear.

I propose the specdata.xml file here https://github.com/Matroska-Org/foundation-source/blob/master/spectool/specdata.xml <https://github.com/Matroska-Org/foundation-source/blob/master/spectool/specdata.xml> is a good basis for the consideration of an EBML Schema. From what I can see, specdata.xml is an expression of the EBML + Matroska specifications to support automated creation of documentation, but the structure of this already shares a lot of similarity to XML Schemas.

But there are some differences between the ebml element attributes listed in the current EBML spec and the specdata.xml file.

The EBML spec lists these attributes for defining EBML Elements:
element name
level
id
mandatory
multiple
range
default
element type
description

to these specdata.xml adds:
bytesize
cppname
divx
maxver
minver
recursive
webm

I think it may be worthwhile to define bytesize, maxver, minver, and recursive in the EBML Schema itself. The attributes for cppname, divx, and webm seem locally specifically to matroska documents. Also potentially webm could be with a separate EBML Schema or an EBML Schema Extension based on the matroska EBML Schema.

So I have some questions:

Is there a preference in handling the standardization of Matroska: documenting it in a similar fashion to our work in the EBML spec or to define what an EBML Schema is and consider matroska an expression of it?

Are some changes to specdata.xml acceptable? Such as a filename change or changing the name of the <table> element of some attributes?

Neither the current EBML specs nor the specdata.xml specifically refer to the hierarchical arrangement of the elements, but this could be presumed by their ordering. For instance, could any level 3 element be a child of any level 2 Master-element? I presume not, but I don't think it's clear anywhere what parent-child relationships are feasible. Possibly specdata.xml and/or the EBML Schema Definition could define the relationship between levels of related elements similar to how an XML Schema (XSD) does.

Best Regards,
Dave Rice

_______________________________________________
Matroska-devel mailing list
[email protected]
http://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel
Read Matroska-Devel on GMane: http://dir.gmane.org/gmane.comp.multimedia.matroska.devel
signature.asc (application/pgp-signature, 801 B)
-----BEGIN PGP SIGNATURE-----

iQIcBAEBCAAGBQJV38s3AAoJEIlM1Sx2ptr51YMQALFQ0pHnxhNeBxF7hKCAwWtB
08cpoI5EaC9EhGDHTxVUM6KSoQOs8GSSfE8dJ9mcldI7JAoZ8iXaq8n0pp11uJ0K
p6w1qTNBkaAcQKm2xvpr2AhAKZit/pJKZpxjJxaX5Y7Dze2XmfMLDLZoFGGgEiFC
UPWErNNfQiQoCkNmKezPmvwW46b9rKriANW7bsN+SRc7skuxkqIrArKfUOa9r5M2
Udw9jiuGHcbB3HFJPntgl6SsVPM53xmqgn0XR8hZG0s/D3ffOes6xKnOlw6A8HfQ
Hssn8CZKxgpNZJjjT3vs1EajkAESjfDVtnYR6ISM8MhI7NUlGYBidy9o92wS/3ck
+vwn0ZyIq8snm9xY/njFa7q1W5P9LpDf1Jk+9kpzREC7DpFkKcUAaheFNNLxMb0E
bAZTUSxu/FCVEHQ2jhGX97GFP92N7lE9X8PyEwr863uWs72hSFKELAqJVybluZ+m
8j7UTAWGPZPhyfR+T8RCugd0UN9AeSCgVaY/GKAeDEdxu0MZDE13Ae19QaJzr/JG
D78IwJqDi5RUFASYc3bUZOJAF6prTlV49woojwFhSJKvNNTJ4R3mHaGtvw8fR1I0
2Ja5cxi0vZWpsYUYxBcLaN79SXJMr5tnQFiBL0GnnvZRqkwW6kx0MpwPEf95rfUs
VL0rLJWWHkkLsDCa8Gq1
=R6YS
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.