diff --git a/README.txt b/README.txt index 7890be5..6a0c4d7 100644 --- a/README.txt +++ b/README.txt @@ -1,12 +1,12 @@ - __ ___ __ __ -|__) |__ / _` \_/ |\/| | | | |__) -| \ |___ \__> / \ | | |___ |___ | |__) + __ ___ __ __ +|__) |__ / _` \_/ |\/| | | | |__) +| \ |___ \__> / \ | | |___ |___ | |__) INTRODUCTION ============ -regxmllib is a collection of tools and libraries for the creation of +regxmllib is a collection of tools and libraries for the creation of RegXML (SMPTE ST 2001-1) representations of MXF header metadata (SMPTE ST 377-1). A RegXML Fragment example can be found at [1] @@ -21,15 +21,15 @@ Two implementations of regxmllib are provided: KNOWN ISSUES AND LIMITATIONS ============================ -regxmllib relies on SMPTE Metadata Registers that conform to SMPTE ST 335, +regxmllib relies on SMPTE Metadata Registers that conform to SMPTE ST 335, ST 395, ST 400, ST 2003. These registers are published at [1]. [1] https://smpte-ra.org/smpte-metadata-registry -regxmllib deviates from ST 2001-1:2013 in a few narrow instances. Such deviations -are noted in the source code and are expected to be submitted for consideration at +regxmllib deviates from ST 2001-1:2013 in a few narrow instances. Such deviations +are noted in the source code and are expected to be submitted for consideration at the next revision of ST 2001-1. In particular: - + * no baseline metadictionary is used, instead one extension metadictionary per namespace is used @@ -51,47 +51,47 @@ Maven (recommended) Git -(recommended) SMPTE Metadata Registers (Types, Elements, Groups and Labels) +(recommended) SMPTE Metadata Registers (Types, Elements, Groups and Labels) Quick Start ----------- The following outputs to path PATH_TO_FRAGMENT an XML representation -of the header metadata of the MXF file at path PATH_TO_MXF_FILE +of the header metadata of the MXF file at path PATH_TO_MXF_FILE -* build the 'jar' target using Maven 'package' goal +* `mvn package -Pwith-dependencies` * choose one of the following: * OPTION 1 * retrieve the four SMPTE Metadata Registers (see [1] above) - + * build the metadictionaries from the SMPTE registers java -cp com.sandflow.smpte.tools.XMLRegistersToDict -e -l -g -t PATH_TO_DICT_DIR - + * OPTION 2 - + * retrieve metadictionaries from [3] - + [3] https://github.com/sandflow/IMF/tree/master/dict - + * generate the RegXML fragment - - run java -cp com.sandflow.smpte.tools.RegXMLDump -all -d ... + + run java -cp target/regxmllib-jar-with-dependencies.jar com.sandflow.smpte.tools.RegXMLDump -all -d ... -i > * (optional) generate XSDs for RegXML Fragments - run java -cp com.sandflow.smpte.tools.GenerateDictionaryXMLSchema -d ... + run java -cp target/regxmllib-jar-with-dependencies.jar com.sandflow.smpte.tools.GenerateDictionaryXMLSchema -d ... -o * (optional) generate XSDs for SMPTE registers - run java -cp com.sandflow.smpte.tools.GenerateXMLSchemaDocuments -cp + run java -cp target/regxmllib-jar-with-dependencies.jar com.sandflow.smpte.tools.GenerateXMLSchemaDocuments -cp -d where is equal to com.sandflow.smpte.register.catsup.TypesRegisterModel, etc. @@ -103,7 +103,7 @@ Architecture At the heart of regxmllib is the FragmentBuilder.fragmentFromTriplet() method that creates an XML fragment from a KLV group given a a RegXML metadictionary and a collection of KLV groups from which strong -references are resolved. The rules engine implemented in +references are resolved. The rules engine implemented in FragmentBuilder.fragmentFromTriplet() is intended to follow the rules specified in ST 2001-1 as closely as possible. A sister method, XMLSchemaBuilder.fromDictionary(), creates a matching XML Schema that can be used to validate RegXML fragments. @@ -119,17 +119,17 @@ Packages -------- com.sandflow.smpte.klv : Classes for processing SMPTE KLV triplets (ST 336) - + com.sandflow.smpte.mxf: Classes for processing SMPTE MXF structures (ST 377-1) com.sandflow.smpte.register: Classes for processing SMPTE metadata registers (ST 335, ST 395, ST 400, ST 2003) - + com.sandfow.smpte.regxml: Classes for managing RegXML metadictionaries and creating RegXML representations of MXF structures - + com.sandfow.smpte.tools: Application-level tools - + com.sandfow.smpte.util: Utilities classes @@ -138,13 +138,13 @@ Tools RegXMLDump: dumps either the first essence descriptor or the entire header metadata of an MXF file as a RegXML structure - + XMLRegistersToDict: converts XML-based SMPTE metadata registers to a RegXML metadictionaries GenerateXMLSchemaDocuments: generates XSDs for the SMPTE metadata registers - + GenerateDictionaryXMLSchema: generate XSDs for RegXML Fragments from the RegXML metadictionaries - + Unit Test --------- @@ -155,12 +155,12 @@ to reference RegXML fragments located at [3]. [1] src/test/mxf-files [2] src/test/registers -[3] src/test/regxml-files +[3] src/test/regxml-files Reference RegXML fragments can regenerated by running the package goal with the build-reference-test-files profile: mvn package -Pbuild-reference-files - + Maven Artifacts --------------- @@ -188,7 +188,7 @@ Xerces-C++ Version 3.1.4 (or above) [1] (recommended) CMake [1] https://xerces.apache.org/xerces-c/ - + Architecture ------------ @@ -214,7 +214,7 @@ to reference RegXML fragments located at [3]. [1] src/test/mxf-files [2] src/test/regxml-dicts -[3] src/test/regxml-files +[3] src/test/regxml-files DIRECTORIES AND NOTABLE FILES @@ -227,20 +227,20 @@ pom.xml Maven POM file CMakeLists.txt CMake build file target Output of the Maven build process, including the JAR - + src/java regxmllibj codebase src/cpp regxmllibc codebase src/main/config/repoversion.properties - Template Java properties file used to host the + Template Java properties file used to host the a unique source code version generated using git by the build system src/main/resources/reg.xsd Common XML Schema definitions used when generating XML Schemas for RegXML Fragments - + src/test/resources/regxml-files Reference RegXML fragment used for unit testing @@ -248,7 +248,7 @@ src/test/resources/registers Reference SMPTE registers used for unit testing src/test/resources/mxf-files - Sample MXF files used for unit testing + Sample MXF files used for unit testing src/test/resources/regxml-dicts - Reference metadictionaries used for unit testing + Reference metadictionaries used for unit testing diff --git a/pom.xml b/pom.xml index bb7170a..fdc9614 100644 --- a/pom.xml +++ b/pom.xml @@ -50,17 +50,18 @@ junit junit - 4.13.1 + 4.13.2 test org.glassfish.jaxb jaxb-runtime - 4.0.5 + 4.0.6 + ${project.artifactId} org.codehaus.mojo @@ -121,7 +122,7 @@ maven-antrun-plugin - 1.8 + 3.2.0 package @@ -141,6 +142,30 @@ + + with-dependencies + + + + org.apache.maven.plugins + maven-assembly-plugin + + + package + + single + + + + jar-with-dependencies + + + + + + + + release @@ -158,7 +183,7 @@ org.apache.maven.plugins maven-source-plugin - 2.2.1 + 3.4.0 attach-sources @@ -171,7 +196,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 2.9.1 + 3.12.0 attach-javadocs @@ -184,7 +209,7 @@ org.apache.maven.plugins maven-gpg-plugin - 1.5 + 3.2.8 sign-artifacts @@ -198,7 +223,7 @@ org.sonatype.central central-publishing-maven-plugin - 0.8.0 + 0.9.0 true central