CWR Validator
The CWR Validator is a tool for windows validating CWR files according to the CWR v2.1 specification revision 7.
You may ↓ download the tool or read the following brief introduction.
Features
The tool validates CWR-Files strictly against the CWR spec, offering the following features:
- browsing through the hierarchically structured CWR file
- display of validation messages with description and line number
- filter certain types of validation messages
- create and customize filter presets
In contrast to our other tool CWR parser it is intended for the end user, e.g. publishers who want to check their CWR before sending it to collecting societies or subpublishers. Developers however should have a look at the CWR parser.
How to Use
Following a brief introduction how the validator can be used, covering all essential functions.
Installing
            To run the tool, you will need Windows and the zipped application.
            We are providing the latter, so download it,
            unzip it and run CwrValidator.exe
          
Loading a CWR
Afterwards you should see a screen similiar to the following (depending on the version you are using). After a brief but thorough examination of the disclaimer you should use the only visible button and LOAD a CWR-File.

Import Log
            After a (hopefully) successful loading of a CWR-File you will see
            the Import Log, showing some stats (see below). In the
            unlikely event of an unsuccessful loading/reading of the CWR, the
            resulting errors are listed. These are _no_ validation results, only
            potential errors which might hinder validation.
          

Validation Results
            The validation results tab lists all validation
            messages for the loaded CWR-File, including some metadata of the
            violated rule and number of occurrences.
          
You can collapse each validation message (click the small arrow on the right) and get a listing of the error causing works with line numbers and description.

CWR Data
            In the tab CWR Data you can browse through the CWR-file
            and its validation messages.
          
            According to the structure of a CWR File you can browse the
            Header, the
            Transaction List and a specific
            Transaction in the accordingly named tabs.
            Note that the transaction is displayed only once you've
            selected a specific transaction in the
            transaction list.
          
Header
First, you get some metadata extracted from the filename (yes, in the CWR standard the filename has to follow a specific format and thus contains relevant information).
            Below the Filename Information you'll find a structured
            visualisation of the Header fields of the CWR.
          
            In case of validation messages the corresponding fields are marked
            with a  .
            MSG-Records are marked with a
.
            MSG-Records are marked with a
             .
.
          

Transaction List
            The Transaction List tab shows all transactions
            (=musical works) included in the CWR-file along with some metadata,
            like Authors, number of validation messages etc. You can search for
            a specific transaction with the search box. If found what you are
            looking for, click on the right arrow and you will get to the
            details of the choosen transaction.
          
             
          
Transaction Details
            In the Transaction Details tab you will find a list of
            validation results regarding that specific transaction and a
            structured view of the CWR-Data. Both elements can be collapsed (as
            shown in the gif below). You can either browse the CWR-Data yourself
            or jump directly to a specific record in from the validation
            results.
          
In the CWR-Data you'll see the CWR elements structured in rows. Below the raw CWR in the header of each element you get a list of all validation messages to this corresponding element and field-seperated view of the CWR-Data. In case a validation message is bound to a specific field, the field is highlighted.
            As in the header, validation messages are marked with a
             , whereas
            MSG-Records are marked with a
, whereas
            MSG-Records are marked with a
             .
.
          
             
          
Filtering
Since the validator strictly checks against the specification (regardless whether the rules are sensible) and not a few industry players define their own 'specifition', it might not be uncommon to be confronted with a magnitude of validation messages, mostly of one kind. If you or the sender/receiver of your CWR-files accepts or even produces a certain error, you can hide the corresponding rules to concentrate on the 'real' errors. This is done by filtering. You have two options: 1. Create a filter for the current file 2. Create a filter preset, which you can apply whenever necessary
Filtering the current file
To filter certain validation messages in the current file, just click the filter button in the top right corner. You'll then get a list of the validation messages of the current document (sorted descending by occurences), where you can choose which of them should be visible.
If you already have defined a preset, you can choose it in the dropdown on the top of the dialog.

Create filter presets
            To provide a convenient way of reusing a configuration of filters,
            you can define presets. Just open the
            Configure Filter Presets dialog in the main menu. On
            the left you will find a list of available presets (italic
            the not editable factory presets, bold the
            currently selected preset). With the buttons above the filter list
            you can
          
- create a new preset
- clone a current preset (only available if one is selected)
- create a preset from the current set of filters
- or delete a preset (except for the factory presets).
If a preset is selected, you may edit it's metadata or add/remove validation messages to filter. To apply a preset, go to the filter dialog as described above.

Export
            In the Convert CWR tab it is possible to export the
            CWR-Data along with the validation results as a JSON-File to
            simplify integration of the data in other IT processes.
          
Download
The current version is v0.5.8077 from 14.02.2022.
Disclaimer
The tool is thoroughly tested. However, it is still in ALPHA state. Thus, use it at your own risk. We are not responsible for any negative outcome due to the use of this program. Feedback of any kind please send to Stephan Klingner.
Known Issues
- Since we don't have (and probably ever won't) get access to a database of IPI-Numbers it is not possible to validate the IPI numbers, although specified in the spec
- In case of 11-digit IPI numbers the spec rev. 8 allows for overwriting the sender type in the HDR-Record, which when applied, violating other rules. Therefore we decided to ignore 11-digit IPI numbers. In case you are lucky and have to deal with those, we recommend filtering resulting validation messages.
- CWR-files with Agreement records are not tested yet, so you will probably have unpredicted behaviours of the application. If that should be the case, please send us the concerning files so we might figure out a solution.
Changelog
v0.5.8077 - 14.02.2022
- Showing ID in Validation Results Tab
- Allowing selecting and copying of Work Title and Work ID in Validation Results Tab
- New CISAC Sender Codes from 10.02.2022
- Adding Update Availablehint
v0.5.7873 - 02.08.2021
- textual changes in disclaimer
- increase robustness against errors when loading corrupted files
- fixed a rare bug where the number of active validation messages was wrong
v0.5.7842 - 22.06.2021
- fixed a few bugs regarding date handling
v0.5.77 - 19.03.2021
- fixed a few validation bugs
- added minor usability improvements
v0.5.74 - 17.06.2020
- fixed a lot of bugs and inconsistencies
- added the filter presetsfeatures