Biber::DataModel(3pm)

💖 Biber::DataModel 💖

okay so bestie, welcome to Biber::DataModel — this is the manual page for the Biber::DataModel(3pm) module, straight out of the User Contributed Perl Documentation. it's the class that holds your datamodel objects, and it knows literally everything about which fields, entrytypes, datatypes and formats are legal. think of it as the group chat admin who actually reads the rules. 👑


✨ NAME ✨

Biber::DataModel — it's giving Biber::DataModel objects. that's the whole vibe. 💅


🦋 METHODS 🦋

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. so yeah, the user always wins, as they should. 👑

get_outcase

Returns the original datamodel field/entrytype case for output. preserving your og capitalization, no cap. ✨

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. 😭 (fr fr, tests are dramatic like that)

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. vibe check passed or failed, that's it. ✅❌

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. the whole trio, iconic. 👑

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. some fields are allowed to show up empty and that's their main character energy. 💅

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. just straight up dumping it, no thoughts. 💀

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> — the icon, the legend.


🐛 BUGS 🐛

Please report any bugs or feature requests on our Github tracker at <https://github.com/plk/biber/issues>. don't be shy bestie, they wanna hear it. 🫶


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.


and that's the whole page, bestie 💜 this one came from perl v5.42.3, dated 2026-08-14, and it's the Biber::DataModel(3pm) manual. go forth and validate some fields. slay. 🎀✨🦋

📦 where this page comes from