Frequently Asked Questions

XML Databases

  • What is an XML database?
    An XML database is a system that allows data to be specified and (optionally) stored in XML format. This data can be queried, transformed, exported and returned to a calling system. XML databases are a flavor of document-oriented databases which are in turn a category of NoSQL databases.
  • What is a native XML database?

    A native XML database stores XML data in its 'native' format, without attempting to break down or shoehorn the data into a dissimilar structure. Native XML databases are also accessed through XML-based technologies, such as XQuery, and use XML-specific APIs.

    SQL Server, for example, is an XML-enabled database - and therefore not native - because you access it through non-XML (or non-native) technologies such as ODBC. For more information on this topic, see Robert Bourret's writeup of XML Database Products.

  • What is an environment?
    An environment is used by Berkeley DB to configure database engine. For more information,see the FigaroEnv documentation.
  • What is a container?
    A container is where all XML data (and metadata) is stored. Simply put, it's your database.
  • What kind of XML can I put into a container?
    Any kind of XML you like. There are no size limitations as to how big or complex a file you want to store in the database - the only caveat imposed on your XML is that it must be parseable by the Xerces XML parser.
  • What is metadata?
    Metadata is data about data. For example, every XML message inserted into the database has a minimum of one metadata record - its name. See Adding Metadata for an example in C# on how to add metadata to a document.
  • How does indexing work?
    You can set an Index on an element, attribute, or metadata value in your document database. They have their own peculiar string-based syntax. See Using Indices for more information.
  • How do I use XQuery in my .NET application?
    You can use it any way you like - for example, you could use it as a view or rendering engine for a web app or API in Nancy or ASP.NET. See Performing Queries for an exmaple of using XQuery in C#.
  • Where can I go if I need help or have a question?
    If you want Oracle support you can ask questions in their Berkeley DB XML community forum or through the commercial support option (upon purchase). You can visit us on our Slack channel, or Contact us directly if you can't find what you're looking for. If there's some other support option you would prefer but don't see available, let us know!


  • What is Figaro?
    Figaro is a native, embedded XML database engine that runs in your .NET application and allows you to perform database operations with XML nodes and documents. Its purpose is to help .NET developers leverage Oracle Berkeley DB XML in their applications in order to enjoy the benefits of having an embedded, native XML database inside their applications. See our What is Figaro? page for more information.
  • How do I get a NuGet license?
    You can obtain a NuGet license at our licensing portal. See Licensing for more details.
  • What can I use the NuGet license for?

    The NuGet license is strictly for development and/or non-commercial use only. Any other licensing needs will require the purchase of an Oracle license.See Licensing for more details.

    A number of flexible options are available - see our licensing portal for more options.

  • Can I use Figaro to store relational data?
    You could export the data from your relational database using the ADO.NET tools, write the DataSet contents as XML data, and store that data in Figaro. If you're looking to keep your data in a relational format, then the C# library to Oracle Berkeley DB is what you're looking for.
  • Can I use Figaro with JSON data?
    You can't store the data as JSON, but you can use the external functions feature to extend your preferred JSON parser from the .NET Framework into the XQuery engine, or simply use C# to handle the conversion process.
  • Is the Figaro library portable?
    The Oracle Berkeley DB XML database engine is supported by many languages on many platforms. Currently Figaro is tightly coupled with the .NET Framework, but a product in .NET Core is expected soon. See the Portability page for more details.
  • What's with the name?
    The Berkeley DB database engine was originated by a company called Sleepycat Software. Figaro was a cat's name from in old cartoon, so it seemed like an appropriate homage at the time.