Open spoeschel opened 5 years ago
@spoeschel are you able to provide a list of the affected data types?
Yes, the following data types are used in Part M:
Directly mentioned in Tech 3390:
ebuttdt:mediaTimingType
ebuttdt:noTimezoneDateType
ebuttdt:smpteTimingType
ebuttdt:fontFamilyType
ebuttdt:fontSizeType
Added in addition, for abstraction:
ebuttdt:fontStyleType
ebuttdt:fontWeightType
ebuttdt:authoringDelayType
ebuttdt:transitionStyleAttributeType
Indirectly refered to by one of the former mentioned types:
ebuttdt:timecountTimingType
ebuttdt:fullClockTimingType
ebuttdt:cellFontSizeType
ebuttdt:percentageFontSizeType
ebuttdt:pixelFontSizeType
In addition, merging the fixes to other issues in this repo may add further data types, e.g. #2 will add:
ebuttdt:startOfProgrammeTimingType
ebuttdt:clockTimingType
ebuttdt:limitedClockTimingType
ebuttdt:timecountTimingType
Edit: added ebuttdt:startOfProgrammeTimingType
@spoeschel I'm not sure I understand - the issue was to remove the definition of data types not used by attributes defined by Tech3390, but I can't work out from https://github.com/ebu/ebu-tt-m-xsd/issues/25#issuecomment-503586371 which types can be safely removed.
By the way, doing this will also mean that the common data types need to have duplicate definitions in the ebu-tt-xsd, ebu-tt-d-xsd and ebu-tt-3-xsd repos. Unless you want to propose that we create an ebu-ttdt-xsd repo and put them all in there, making the change suggested here will mean that there is an additional maintenance overhead on all of those repos. Just noting it!
I started going through and there are indeed quite a lot of types that are defined here but not used.
@spoeschel I think I've gone through and found all the types not directly used and removed them in #28 but we should really think about the impact before merging it!
There seems a general issue. As far as I can see (after a quick scan) Part 3 does not define the urn:ebu:tt:datatypes
namespace and how to use datatypes "borrowed" from Part 1. This seems to be me a specification issue we may need to clarify first.
@tairt Part 3 is Tech3370, and defines the EBU-TT Datatypes prefix and namespace in §3.1.1 Namespaces, at the top of page 38. Also §3.3 Datatypes makes clear that no new data types are defined in Part 3, and that some datatypes are referenced from Part 1 and Part M.
Did you mean Tech3390, the metadata spec? If so, I agree there's a spec issue, and noted this in https://github.com/ebu/ebu-tt-m-xsd/pull/15#issuecomment-503027790
Yes, I meant EBU-TT Part M.
It is an interesting question how to best resolve it. I agree that for the meantime the best approach is what @nigelmegitt and @spoeschel discussed (see this issue and the related discussions in othe issues).
In the longterm we may find a better solution. If we agree that Part 1, 3 and -D always import Part M then we may want to have just one Datatype schema document in the Part M repo.
@nigelmegitt Changes on common data types will indeed require work to be done in separate repos, but I think this is feasible to do so for now, in order to prevent the issues.
I re-open this issue at the current solution leads to compatibility problems as described in https://github.com/ebu/ebu-tt-m-xsd/issues/30. Another of the discussed solutions (e.g. have duplicate datatypes but in a different namespace or have just one datatype definition) could solve the issues.
Currently the Part 1 repo and the Part M repo share a common set of EBU-TT datatypes that are all defined in both repos. Extending this set however can/will lead to issues.
Therefore datatypes that are only used by Part 1 should not be (re)defined by Part M. All datatypes used by Part M should therefore be renamed to use the
ebuttmdt
prefix and theurn:ebu:tt:metadata-datatypes
namespace URN. Consequently the fileebu-tt-datatypes.xsd
should be renamed toebu-tt-metadata-datatypes.xsd
. Datatypes only used by Part 1 should be removed from this file.