Biber::DataModel(3pm)

NAME
Biber::DataModel - Biber::DataModel objects

  new
    Initialize a Biber::DataModel object
    We are passing in an array of datamodels as there may be more than one in tool
    mode - the one from biber-tool.conf and modifications in a user .conf
    We first merge these before extracting data. In case of conflicts, user .conf
    datamodel takes precedence.

  get_outcase
    Returns the original datamodel field/entrytype case for output

  constants
    Returns array ref of constant names

  get_constant_type
    Returns a constant type

  get_constant_value
    Returns a constant value

  is_multiscript
    Returns boolean to say if a field is a multiscript field

  fieldtypes
    Returns array ref of legal fieldtypes

  datatypes
    Returns array ref of legal datatypes

  is_field
    Returns boolean to say if a field is a legal field.
    Allows for fields with meta markers whose marked field should be in
    the datamodel.

  entrytypes
    Returns array ref of legal entrytypes

  is_entrytype
    Returns boolean to say if an entrytype is a legal entrytype

  is_field_for_entrytype
    Returns boolean to say if a field is legal for an entrytype

  entrytype_is_skipout
    Returns boolean depending on whether an entrytype is to be skipped on output

  get_fields_of_fieldtype
    Retrieve fields of a certain biblatex fieldtype from data model
    Return in sorted order so that bbl order doesn't change when changing
    .bcf. This really messes up tests otherwise.

  get_fields_of_fieldformat
    Retrieve fields of a certain format from data model
    Return in sorted order so that bbl order doesn't change when changing
    .bcf. This really messes up tests otherwise.

  get_fields_of_datatype
    Retrieve fields of a certain biblatex datatype from data model
    Return in sorted order so that bbl order doesn't change when changing
    .bcf. This really messes up tests otherwise.

  get_fields_of_type
    Retrieve fields of a certain biblatex type from data model
    Return in sorted order so that bbl order doesn't change when changing
    .bcf. This really messes up tests otherwise.

  is_fields_of_type
  Returns boolean to say if the given fieldtype/datatype/format is a valid combination

  get_fieldtype
    Returns the fieldtype of a field

  get_datatype
    Returns the datatype of a field

  get_fieldformat
    Returns the format of a field

  get_dm_for_field
    Returns the fieldtype, datatype and format of a field

  field_is_fieldtype
    Returns boolean depending on whether a field is a certain biblatex fieldtype

  field_is_datatype
    Returns boolean depending on whether a field is a certain biblatex datatype

  field_is_type
    Returns boolean depending on whether a field is a certain biblatex fieldtype
    and datatype

  field_is_nullok
    Returns boolean depending on whether a field is ok to be null

  field_is_skipout
    Returns boolean depending on whether a field is to be skipped on output

  check_mandatory_constraints
    Checks constraints of type "mandatory" on entry and
    returns an array of warnings, if any

  check_conditional_constraints
    Checks constraints of type "conditional" on entry and
    returns an array of warnings, if any

  check_data_constraints
    Checks constraints of type "data" on entry and
    returns an array of warnings, if any

  check_datatypes
    Checks datatypes of fields against fields. These are not explicit constraints
    in the datamodel but rather checks of the datatype of fields in the datamodel.

  dump
    Dump Biber::DataModel object

  generate_bltxml_schema
    Generate a RelaxNG XML schema from the datamodel for BibLaTeXML datasources

  generate_bblxml_schema
    Generate a RelaxNG XML schema from the datamodel for bblXML output

AUTHORS
Philip Kime "<philip at kime.org.uk>"

BUGS
Please report any bugs or feature requests on our Github tracker at <https://github.com/plk/biber/issues>.

COPYRIGHT & LICENSE
Copyright 2012-2026 Philip Kime, all rights reserved.

This module is free software. You can redistribute it and/or modify it under the terms of the Artistic License 2.0.

This program is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.