DoenaSoft.DVDProfiler.Xml
6.0.2
dotnet add package DoenaSoft.DVDProfiler.Xml --version 6.0.2
NuGet\Install-Package DoenaSoft.DVDProfiler.Xml -Version 6.0.2
<PackageReference Include="DoenaSoft.DVDProfiler.Xml" Version="6.0.2" />
<PackageVersion Include="DoenaSoft.DVDProfiler.Xml" Version="6.0.2" />
<PackageReference Include="DoenaSoft.DVDProfiler.Xml" />
paket add DoenaSoft.DVDProfiler.Xml --version 6.0.2
#r "nuget: DoenaSoft.DVDProfiler.Xml, 6.0.2"
#:package DoenaSoft.DVDProfiler.Xml@6.0.2
#addin nuget:?package=DoenaSoft.DVDProfiler.Xml&version=6.0.2
#tool nuget:?package=DoenaSoft.DVDProfiler.Xml&version=6.0.2
DoenaSoft.DVDProfiler.Xml
A comprehensive .NET library for working with DVD Profiler XML exports.
Table of Contents
- About DVD Profiler
- About This Library
- Features
- Installation
- Supported Versions
- Target Frameworks
- Usage
- DVD Profiler Version Support
- Dependencies
- Building from Source
- Contributing
- License
- Author
About DVD Profiler
DVD Profiler is a comprehensive DVD cataloging software application developed by Invelos LLC (https://www.invelos.com). It allows users to catalog their DVD, Blu-ray, and 4K UHD collections with detailed information including cast, crew, technical specifications, and custom data. DVD Profiler can export collection data to XML files, which can be used for backup, sharing, or integration with other applications.
About This Library
DoenaSoft.DVDProfiler.Xml is a .NET library that provides strongly-typed classes and helper functions for reading, writing, and manipulating DVD Profiler XML export files. This library eliminates the need to manually parse XML files and provides a clean, object-oriented API for working with DVD Profiler data.
Features
- Strongly-typed classes for all DVD Profiler XML elements
- Serialization and deserialization support for DVD Profiler XML exports
- Multiple version support for DVD Profiler XML schemas (3.5.1 through 4.0.0)
- Helper methods for common operations on DVD data
- Locality and Country of Origin (COO) support for regional information
- Collection tree management for organizing DVDs
- Crew sorting utilities for cast and crew information
- Person data handling with interfaces for consistency
- XSD schema files included for validation
Installation
Via NuGet Package Manager
Install-Package DoenaSoft.DVDProfiler.Xml
Via .NET CLI
dotnet add package DoenaSoft.DVDProfiler.Xml
Via Package Reference
Add the following to your .csproj file:
<PackageReference Include="DoenaSoft.DVDProfiler.Xml" Version="6.0.0" />
Supported Versions
This library supports the following DVD Profiler XML export versions:
- 3.5.1 - Legacy support
- 3.6.0 - With Localities support
- 3.8.0 - Enhanced features
- 3.8.1 - With COO (Country of Origin) and enhanced Localities
- 3.9.0 - Updated schema
- 4.0.0 - Latest version with full Localities support
Target Frameworks
- .NET Framework 4.7.2 - For legacy Windows applications
- .NET 10 - For modern cross-platform applications
Usage
Reading a DVD Profiler Collection
using DoenaSoft.DVDProfiler.DVDProfilerXML.Version400;
using System.Xml.Serialization;
// Deserialize a DVD Profiler XML file
var serializer = new XmlSerializer(typeof(Collection));
using (var reader = new StreamReader("MyCollection.xml"))
{
var collection = (Collection)serializer.Deserialize(reader);
Console.WriteLine($"Total DVDs: {collection.DVDList.Length}");
foreach (var dvd in collection.DVDList)
{
Console.WriteLine($"Title: {dvd.Title}");
Console.WriteLine($"Year: {dvd.ProductionYear}");
Console.WriteLine($"UPC: {dvd.UPC}");
}
}
Writing a DVD Profiler Collection
using DoenaSoft.DVDProfiler.DVDProfilerXML.Version400;
using System.Text;
// Create a new collection
var collection = new Collection();
// Serialize to XML file
collection.Serialize("MyCollection.xml", Encoding.GetEncoding(1252));
Working with DVD Data
using DoenaSoft.DVDProfiler.DVDProfilerXML.Version400;
// Create a new DVD entry
var dvd = new DVD
{
Title = "The Matrix",
ProductionYear = 1999,
UPC = "012345678901",
Edition = "Special Edition",
CollectionNumber = "001",
CollectionType = new CollectionType { IsOwned = true },
GenreList = new[] { "Science Fiction", "Action" }
};
// Add to collection
collection.DVDList = new[] { dvd };
Working with Cast and Crew
using DoenaSoft.DVDProfiler.DVDProfilerXML.Version400;
var dvd = new DVD
{
Title = "Example Movie",
CastList = new Actor[]
{
new Actor
{
FirstName = "John",
LastName = "Doe",
Role = "Main Character",
BirthYear = 1970
}
},
CrewList = new CrewMember[]
{
new CrewMember
{
FirstName = "Jane",
LastName = "Smith",
CreditType = "Director",
BirthYear = 1965
}
}
};
Using Version-Specific Namespaces
Each DVD Profiler version has its own namespace:
using DoenaSoft.DVDProfiler.DVDProfilerXML.Version351; // For 3.5.1
using DoenaSoft.DVDProfiler.DVDProfilerXML.Version360; // For 3.6.0
using DoenaSoft.DVDProfiler.DVDProfilerXML.Version380; // For 3.8.0
using DoenaSoft.DVDProfiler.DVDProfilerXML.Version381; // For 3.8.1
using DoenaSoft.DVDProfiler.DVDProfilerXML.Version390; // For 3.9.0
using DoenaSoft.DVDProfiler.DVDProfilerXML.Version400; // For 4.0.0 (Latest)
DVD Profiler Version Support
| Library Version | DVD Profiler Versions Supported |
|---|---|
| 6.0.0 (Current) | 3.5.1, 3.6.0, 3.8.0, 3.8.1, 3.9.0, 4.0.0 |
The library maintains backward compatibility with older DVD Profiler XML formats while supporting the latest schema.
Dependencies
- DoenaSoft.AbstractionLayer.WinForms (v2.0.4) - Abstraction layer for Windows Forms interactions
- DoenaSoft.DVDProfiler.Helper (v4.0.0) - Common helper utilities for DVD Profiler operations
Building from Source
Prerequisites
- Visual Studio 2022 or later (or Visual Studio 2026 as in development)
- .NET Framework 4.7.2 SDK
- .NET 10 SDK
Build Steps
Clone the repository:
git clone https://github.com/DJDoena/DVDProfilerXML.git cd DVDProfilerXMLOpen the solution in Visual Studio or build from command line:
dotnet buildRun tests (if available):
dotnet test
Project Structure
DVDProfilerXML/
|-- 3.5.1/ # DVD Profiler 3.5.1 schema and classes
|-- 3.6.0/ # DVD Profiler 3.6.0 schema and classes
|-- 3.8.0/ # DVD Profiler 3.8.0 schema and classes
|-- 3.8.1/ # DVD Profiler 3.8.1 schema and classes (with COO)
|-- 3.9.0/ # DVD Profiler 3.9.0 schema and classes
|-- 4.0.0/ # DVD Profiler 4.0.0 schema and classes (Latest)
|-- *.cs # Common interfaces and utilities
|-- DVDProfiler.Xml.csproj
Contributing
Contributions are welcome! If you'd like to contribute to this project:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Guidelines
- Follow the existing code style and conventions
- Add XML documentation comments for public APIs
- Ensure backward compatibility when possible
- Update the README if you add new features
License
This project is licensed under the MIT License. See the LICENSE file for details.
Copyright (c) Doena Soft. 2010 - 2026
Author
DJ Doena
Doena Soft.
- GitHub: @DJDoena
- Project URL: https://github.com/DJDoena/DVDProfilerXML
- NuGet Package: https://www.nuget.org/packages/DoenaSoft.DVDProfiler.Xml/
Disclaimer
This library is not affiliated with, endorsed by, or connected to Invelos LLC or the DVD Profiler software. DVD Profiler is a trademark of Invelos LLC. This library is an independent tool created to work with DVD Profiler's XML export functionality.
Support
For bug reports, feature requests, or questions, please open an issue on the GitHub repository.
Made with care for the DVD Profiler community
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0-windows7.0 is compatible. |
| .NET Framework | net472 is compatible. net48 was computed. net481 was computed. |
-
.NETFramework 4.7.2
- DoenaSoft.AbstractionLayer.WinForms (>= 2.0.5)
- DoenaSoft.DVDProfiler.Helper (>= 4.0.1)
-
net10.0-windows7.0
- DoenaSoft.AbstractionLayer.WinForms (>= 2.0.5)
- DoenaSoft.DVDProfiler.Helper (>= 4.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.