CPL : Codes & Files

XML Validation

XML Schema reference for CPL : CPL-ST429-7-CompositionPlaylistType.xsd

$ xmllint --noout --schema CPL-ST429-7-CompositionPlaylistType.xsd CPL.xml
CPL.xml validates

As with the PKL, the CPL will include the two basic XSD imports (XML and Signature).

Get identifier (Id) of CPL

Using xmllint :

$ xmllint --xpath '//*[local-name()="CompositionPlaylist"]/*[local-name()="Id"]/text()' CPL.xml
urn:uuid:d2e32d20-1f85-4d86-b09f-2ee40ac097a0

Using shell - short form :

$ grep -oE '<Id>urn:uuid:[A-Za-z0-9-]+</Id>' CPL.xml | head -n1 | awk -F'<|>' '{ print $3 }'
urn:uuid:d2e32d20-1f85-4d86-b09f-2ee40ac097a0

Using shell - long form :

$ grep -oE '<Id>urn:uuid:[A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12}</Id>' CPL.xml | head -n1 | awk -F'<|>' '{ print $3 }'
urn:uuid:d2e32d20-1f85-4d86-b09f-2ee40ac097a0

Using Python :

>>> from lxml import etree
>>> with open("CPL.xml", "rb") as xml:
    tree = etree.fromstring(
        text = xml.read()
    )
    tree.xpath("/*[local-name()='CompositionPlaylist']/*[local-name()='Id']/text()")
[urn:uuid:d2e32d20-1f85-4d86-b09f-2ee40ac097a0]

Get ContentTitle of CPL

Using xmllint :

xmllint --xpath '//*[local-name()="CompositionPlaylist"]/*[local-name()="ContentTitleText"]/text()' CPL.xml
DCP-INSIDE-CRYPTE_TST-2D-24_C_FR-XX_51_4K_20220102_SMPTE_OV

Using shell (mode strict) :

grep -oE "<ContentTitleText>[A-Za-z0-9_\-]+</ContentTitleText>" CPL.xml | head -n1 | awk -F'<|>' '{ print $3 }'
DCP-INSIDE-CRYPTE_TST-2D-24_C_FR-XX_51_4K_20220102_SMPTE_OV

Using shell (mode don’t care at all)

grep -oE "<ContentTitleText>.*</ContentTitleText>" CPL.xml | head -n1 | awk -F'<|>' '{ print $3 }'
DCP-INSIDE-CRYPTE_TST-2D-24_C_FR-XX_51_4K_20220102_SMPTE_OV

Using Python :

>>> from lxml import etree
>>> with open("CPL.xml", "rb") as xml:
    tree = etree.fromstring(
        text = xml.read()
    )
    tree.xpath("/*[local-name()='CompositionPlaylist']/*[local-name()='ContentTitleText']/text()")
['DCP-INSIDE-CRYPTE_TST-2D-24_C_FR-XX_51_4K_20220102_SMPTE_OV']