Releases: OP-TED/eForms-SDK
eForms SDK 1.3.0
SDK 1.3.0 Release Notes
This release of the SDK does not contain any backwards incompatible changes: software that was able to use version 1.2.0 should also be able to use this version.
This version brings various changes in the metadata content:
- Several new elements were added in the eForms schemas, and a few elements were removed.
- Codelists were updated based on the latest publication on EU Vocabularies. Several codelists specific to eForms were added.
- Schematron rules were added and updated.
- Examples were updated accordingly, along with their validation reports. An example of a CAN with no tenders received was added.
- The node structure was modified to better correspond to the "conceptual" or visual structure of notices. A few fields were added, and existing fields were updated and corrected.
- All notice type definitions were updated and corrected.
- View templates were updated, but their content is still a work in progress and might contain mistakes.
- Translations were added and corrected for all asset types.
As new rules were added, a notice that was valid with SDK 1.2.0 might not be valid with this version.
This release removes rules that made fields forbidden and/or mandatory under some condition. Having less strict rules will make it initially easier to fill in notices for end users of applications like eNotices2 but also making them more responsible for providing coherent data. The rules will be added back in future SDKs, allowing users and systems to integrate them progressively and to improve data quality.
The documentation for the SDK is available at https://docs.ted.europa.eu. The source for this documentation is maintained in the eforms-docs repository.
eForms SDK 1.2.1
SDK 1.2.1 Release Notes
This release corrects the value of the "sdkVersion" property in JSON and EFX files. It was incorrectly left at "1.1.0" in files included in version 1.2.0.
You can download the latest version from Maven Central.
The documentation for the SDK is available at https://docs.ted.europa.eu. The source for this documentation is maintained in the eforms-docs repository.
eForms SDK 1.2.0
SDK 1.2.0 Release Notes
This release of the SDK does not contain any backwards incompatible changes: software that was able to use version 1.1.0 should also be able to use this version.
This version brings various changes in the metadata content:
- Codelists were updated based on the latest publication on EU Vocabularies. This included the addition, renaming and removal of a few codelists.
- Schematron rules were added and updated.
- Examples were updated accordingly, along with their validation reports.
- A few fields were added, and existing fields were updated and corrected.
- Small changes were made to several notice type definitions.
- View templates were updated, but their content is still a work in progress and might contain mistakes.
- New translations were added for rules and codes, and a few were corrected for business terms.
As new rules were added, a notice that was valid with SDK 1.1.0 might not be valid with this version.
The documentation for the SDK is available at https://docs.ted.europa.eu. The source for this documentation is maintained in the eforms-docs repository.
eForms SDK 1.1.1
SDK 1.1.1 Release Notes
This release of the SDK does not contain any backwards incompatible changes. Software that was able to use version 1.0.0 should also be able to use this version.
This patch release provides some additional files needed by the TED website. These files are not intended to (and should not) be used by 3rd party applications (eSenders).
You can download the latest version from Maven Central.
This release has no impact on eSenders. The eForms metadata are identical to 1.1.0.
The documentation for the SDK is available at https://docs.ted.europa.eu. The source for this documentation is maintained in the eforms-docs repository.
eForms SDK 1.1.0
SDK 1.1.0 Release Notes
This release of the SDK does not contain any backwards incompatible changes: software that was able to use version 1.0.0 should also be able to use this version.
This version brings various changes in the metadata content:
- New elements were added in the eForms schemas, and a few elements were removed.
- Several new codelists were added.
- Schematron rules were added and updated.
- Examples were updated accordingly, along with their validation reports.
- New fields were added, and existing fields were updated.
- Small changes were made to several notice type definitions.
- View templates were updated, but their content is still a work in progress and might contain mistakes.
- New translations were added for rules, fields and codes.
As elements were removed from the schema and new rules were added, a notice that was valid with SDK 1.0.0 might not be valid with this version.
The documentation for the SDK is available at https://docs.ted.europa.eu. The source for this documentation is maintained in the eforms-docs repository.
Amendment to eForms Regulation
An amendment to the eForms Regulation will be published in the near future.
This amendment includes changes to Annex II.
It introduces new Business Terms, and modifies some existing Business Terms, affecting names, descriptions and rules.
Some of those changes have been implemented in this release, and correspond to most of the changes listed above. The remaining changes will be implemented in a future release.
eForms SDK 1.0.0
SDK 1.0.0 Release Notes
Below is a list of the major updates made to the SDK in this release.
The documentation for the SDK is available at https://docs.ted.europa.eu. The source for this documentation is maintained in the eforms-docs repository.
Codelists
The codelists
folder now contains an index file named codelists.json
, which describes each available codelist.
A new tailored codelist named lawful-country
has been added.
eForms schemas
No changes in this version.
eForms expression language
Various new features have been added to the eForms expression language (EFX), with a syntax inspired by XPath:
- expression to check that the value of a field appears only once :
BT-137-Lot is unique in /BT-137-Lot
- function to eliminate duplicates in a sequence:
distinct-values
- function to check that 2 sequences contain the same values:
sequence-equal
- functions to combine sequences:
value-union
,value-intersect
,value-except
- for and quantified expressions now allow several variable declarations
- variables can now be used as context:
$variable::BT-137-Lot
The syntax for context declaration for expressions is now aligned with the syntax used in templates:
{ND-LotTenderingProcess} ${BT-115-Lot == FALSE}
EFX expressions can now accept parameters: {ND-Root, number:$p1} ${$p1 == 1}
The value of parameters must be provided when the expression is translated.
In EFX templates, you can now add custom numbering at any indentation level.
You can find more information about EFX in the corresponding section of the documentation.
🚧 This is a breaking change. Your EFX translator will need to implement a few additional methods to support the new language features.
Schematron rules
Folder structure and configuration file
Schematron rules are now organised in 2 folders:
static
: all rules that only use information in the notice being validateddynamic
: all rules instatic
, plus rules that use information in other notices.
The files were renamed to be more consistent: entry.sch
is now complete-validation.sch
, and all stages are named validation-stage-*.sch
Some rules in dynamic
retrieve another notice based on its identifier, by making an HTTP request to an external service.
The URL of this service is configured by a variable defined in the new file config.sch
.
The file stage-4-custom.sch
was removed, all the rules it contained are now covered in validation-stage-5.sch
.
🚧 This is a breaking change. If you use our Schematron rules you need to choose one of the 2 folders depending on your situation.
New type of "warning" rules
We have added several rules to try to check if there is a legal basis for publication of a notice in the Supplement to the Official Journal of the European Union. Those rules are indicated as a warning, and recognizable via a flag="LAWFULNESS"
attribute.
If one or more of those rules cause a failed-assert
in the validation report, it means that we need to manually review the notice before it can be published.
Added and updated rules
Various new rules have been added, in particular for information that is allowed or mandatory only under certain conditions.
Existing rules have been refined and improved.
Example Notices
The XML notices in the examples
folder have been updated to take into account the updated schematron rules.
The validation reports have been regenerated, using the rules in the dynamic
folder, incorporating all the changes listed above.
Fields
"Unpublished" fields
Fields that can be withheld from publication ("unpublished") now have a privacy
property that gives the information needed to withhold publication.
Assertion
A new property named assert
gives an assertion, as a boolean EFX expression, that is expected to evaluate to "true".
This is currently used to specify rules on the field value that can depend on other fields, for example "field A is greated that field B".
Information for change notices
In order to specify what information cannot be modified in a change notice compared to the original notice, we have added a new property named inChangeNotice
.
Context of EFX expressions
In the various properties that contain an EFX expression, the expression now include the context declaration.
Simplification of field types
The field type internal-code
is replaced by code
, as they have the same meaning.
The field types zoned-date
and zoned-time
are replaced by date
and time
, as those types already require a time zone.
Updated information
New fields and nodes have been added.
Various constraints have been added and updated.
The information on the XML structure is now at the start of the file.
Corrections
Incorrect default values for the mandatory
property have been corrected.
Notice types
The notice-types
folder now contains an index file named notice-types.json
, which describes each available notice type.
View templates
The view-templates
folder now contains an index file named view-templates.json
, which describes each available template.
All view templates have been updated with various small updates and corrections.
❕ The content of the view templates is still a work in progress. Subsequent releases of the SDK will gradually provide you with better and better view templates as we spot and correct mistakes.
Translations
The asset types and label types used to identify translations have been changed, to improve consistency and clarity.
Asset types:
decoration
toauxiliary
condition
toexpression
business_term
tobusiness-term
Label types:
value
toname
message_template
totemplate
message
totext
Labels for codelist names, notice types, and view template names have been added.
Several translations have been updated and corrected.
eForms SDK 0.7.0
Release Notes
Below is a list of the major updates made to the SDK in this release.
The documentation for the SDK is available at https://docs.ted.europa.eu. The source for this documentation is maintained in the eforms-docs repository.
Notice types
A new file format for the notice type definitions is being introduced. The reason for this breaking change is that the notice type definitions included in previous versions of the SDK, were hand-written before the SDK itself was introduced, in order to cover the immediate needs of our notice filling application (eNotices2). The new file format is quite similar to the old one, but simpler to consume and understand. Most importantly the new notice type definition files are generated from our central eForms Metadata Repository which guaranties that there are no conflicting or unnecessary metadata included in them.
🚧 This is a breaking change. If your application uses the notice type definitions you will need to update it to read the new file format.
Codelists
The notice subtypes indicated in the the tailored codelist qu-sy
have been corrected.
A new tailored codelist named social-service-cpv
has been added.
eForms schemas
No changes in this version.
eForms expression language
Various new features have been added to the eForms expression language (EFX), with a syntax inspired by XPath:
- conditional expressions:
if ... then ... else ...
- for expressions:
for ... in ... return ...
- quantified expressions:
every/some ... in ... satisfies ...
- sum and count functions now work with sequences
In addition, the format for dates and times now allows the indication of a time zone offset.
You can find more information about EFX in the corresponding section of the documentation.
🚧 This is a breaking change. Your EFX translator will need to implement a few additional methods to support the new language features.
Schematron rules
Co-constraint rules
We have added a new Schematron file named stage-5.sch
, containing rules that check the conformity of the values in a notice.
Additional information in validation reports
For certain types of rules, failures in the validation report did not indicate the exact element that caused the problem, for example if a mandatory element is missing. We have added additional information in the schematron rules, using the diagnostics
element and attribute, so that those failures now give the XPath of the element under diagnostic-reference
.
Added and updated rules
Various new rules have been added, in particular for information that is allowed or mandatory only under certain conditions.
Existing rules have been refined and improved.
Example Notices
The XML notices in the examples
folder have been updated to take into account the updated schematron rules.
The validation reports have been regenerated, incorporating all the changes listed above.
Fields
New properties
We've added new field properties named idScheme
and idSchemes
that provide the necessary information for creating (as well as referencing) identifiers of repeatable entities. This information was previously encoded only in the notice type definitions and needed to be normalized.
Some repeatable nodes in the XML structure now have an additional property named identifierFieldId
which points to the field where the identifiers of their instances should be stored.
Updated information
The node identifiers have been changed, to make them more recognizable: NB-Lot, ND-ContractingParty, etc.
Various constraints have been added and updated.
Corrections
The repeatability of several fields and nodes was corrected.
The XPath of 2 fields was corrected (issue #27, thanks to @fpoort for reporting this).
View templates
All view templates have been updated to use the new node identifiers, along with various small updates and corrections.
❕ The content of the view templates is still a work in progress. Subsequent releases of the SDK will gradually provide you with better and better view templates as we spot and correct mistakes.
Translations
A new group
asset type was added, with translations on in English for now.
Translations for several items in codelists, fields and rules have been updated and corrected.
eForms SDK 0.6.2
SDK 0.6.2 Release Notes
eForms SDK 0.6.2 fixes an issue that was overlooked when we released 0.6.1. Only pom.xml was modified again to add a deployment profile for tasks that need to be executed only on release.
The content of the SDK does not change with this patch.
eForms SDK 0.6.1
SDK 0.6.1 Release Notes
eForms SDK 0.6.1 only updates the pom.xml to allow us to publish it in the Maven Central Repository.
This allows developers to use the package directly in their dependency management configuration. The package can also be directly downloaded from Maven Central.
The content of the SDK does not change with this patch.
eForms SDK 0.6.0
SDK 0.6.0 Release Notes
Below is a list of the major updates made to the SDK in this release.
The documentation for the SDK is available at https://docs.ted.europa.eu. The source for this documentation is maintained in the eforms-docs repository.
eForms expression language
We have created a domain-specific language named "eForms expression language", or EFX, that we use in several ways described below.
This language is defined in a formal grammar, available in the efx-grammar
folder. We provide a parser and a translator to XPath as a Java library named 'efx-toolkit-java', available on GitHub.
You can find more information about EFX in the corresponding section of the documentation.
View templates
To standardise the way a notice can be visualised, independently of the media format used (PDF, HTML etc.), we have created a set of "view templates".
Every notice subtype can be associated with one or more different view templates. These templates are available in the view-templates
folder. The template files use the EFX template syntax.
To demonstrate the usage of these view templates, we provide a sample application named 'eforms-notice-viewer', available on GitHub.
You can find more information about view templates in the corresponding section of the documentation.
Codelists
Codelists have been updated to take into account the latest publication on EU Vocabularies.
eForms schemas
No changes in this version.
Schematron rules
Change notices
A first set of rules specific to change notices have been added. For the information that cannot be changed via a change notice, these rules check that the values are identical in the notice that is referenced by the change notice.
Translation of messages
Instead of a message in English, each Schematron rules now contains a code that corresponds to a specific message. The texts of these messages are provided in the translations
folder, in the files rule_*.xml
, and they will be available in all EU official languages in the future.
Rule identifier
Each assert
element in Schematron now has an id
attribute, indicating the unique identifier for the rule. This identifier also appears in validation report, making it easier to pinpoint the corresponding rule.
Added and updated rules
Various new rules have been added, in particular for information that is allowed or mandatory only under certain conditions.
Existing rules have been refined and improved.
Example Notices
The XML notices in the "examples" folder have been updated to take into account the updated schematron rules.
New examples were added:
- Prior information notice with the EU Financial Regulation as legal basis
- Contract award notice with several buyers from different countries
- Invalid change notice with changes that are not allowed
The validation reports have been regenerated, incorporating all the changes listed above.
Fields
New syntax for conditions
The conditions are now written using the EFX language, which makes them easier to read, and offers more flexibility to express complex conditions.
Maximum number of characters
The maximum number of characters allowed for a field is now indicated directly in a new maxLength
property, instead of via a regular expression pattern.
Notice types
Definitions for all notice subtypes were updated to the latest version used by the eNotices2 application.
The name of 4 files were corrected.
The legal basis indicated for one document type has been corrected.
Translations
Translations for several items in codelists have been updated.
An initial version of the messages for schematron rules is available in English, and ome preliminary translations are provided in French and Greek. Those texts will be reviewed and completed in the future.