This project hosts the C# implementation of GEDCOM X and related extensions. The modules of this project each address specific aspects of the GEDCOM X Specification Set, including:
- Readers and writers for the GEDCOM X XML Serialization Format.
- Readers and writers for the GEDCOM X JSON Serialization Format.
- Readers and writers for the GEDCOM X File Format.
- Client-side libraries for reading and writing a GEDCOM X Web service API that conforms to the GEDCOM X RS Specification.
The Gedcomx.Model
subproject provides C# classes that correspond to the data types defined by
the GEDCOM X Conceptual Model.
These classes are instrumented such that they can be used to read and write both
XML and
JSON.
For more information about GEDCOM X data models, see the Gedcomx.Model
module.
The Gedcomx.Rs.Api
module provides support for reading from and writing to a GEDCOM X
Web service API that conforms to the GEDCOM X RS Specification.
The [Gedcomx.File
](./GEDCOM X File/README.md) subproject provides support for reading and writing the
GEDCOM X File Format.
For more information about reading and writing GEDCOM X files,
see [GEDCOM X File
](./GEDCOM X File/README.md).
Note: The GEDCOM X File project is responsible for managing all reading and writing to and from XML or JSON, and is the module responsible for all API serialization.
The extensions
module provides a place for extensions to GEDCOM X. FamilySearch has defined
a set of extensions to the GEDCOM X Conceptual Model and to the GEDCOM X RS specification that comprise the definition of
the FamilySearch API.
The FamilySearch API Client comprises the developer SDK for the FamilySearch API.
Here's how you might use this project.
The GEDCOM X C# artifacts are provided via NuGet.
There are a total of 7 packages, which you can use in anyway you need.
NuGet Package Id | Purpose | Notes |
---|---|---|
FamilySearch.API.SDK | This is the main SDK library, and encompasses the ability to work with generic GEDCOM X and FamilySearch specific GEDCOM X data. | This is the FamilySearch GEDCOM X SDK. Use this project to perform all GEDCOM X operations supported by FamilySearch, or generic GEDCOM X operations. If you're unsure which library to use, this is the one to use. |
Gedcomx.Model | Contains the models for GEDCOM X data. | Use this by itself to just work with the GEDCOM X models and data, and not any web services or files. |
Gedcomx.Model.Fs | Contains FamilySearch specific GEDCOM X model extensions. | Use this by itself to just work with the GEDCOM X FamilySearch extension models and data, and not any web services or files. |
Gedcomx.Model.Rs | Contains REST specific GEDCOM X model extensions. | Use this by itself to just work with the GEDCOM X REST extension models and data, and not any web services or files. (This project adds atom feed models.) |
Gedcomx.API.SDK | This is the base SDK library, and encompasses the ability to work with GEDCOM X data. | This is the core GEDCOM X SDK project. Use this to perform basic GEDCOM X operations. |
Gedcomx.File | Contains libraries to read and write GEDCOM X files and provides core serialization functionality for all web API communications. | Use this by itself to support reading and writing GEDCOM X files (in XML format) or reading and writing GEDCOM X data in serialized format (JSON OR XML), such as in Web API methods. |
Gedcomx.Date | Contains libraries to work with a variety of GEDCOM X dates and formats. | Use this by itself to support GEDCOM X date processing or manipulation. |
To use the latest version of the libraries, visit the NuGet links above.
Prerequisites:
- Microsoft .NET Framework 4.5.1. The web installer can be downloaded here: http://www.microsoft.com/en-us/download/details.aspx?id=40773
- NuGet 2.8. Instructions for installing can be found here: http://docs.nuget.org/docs/start-here/installing-nuget
Here's how you could build this project from source:
git clone https://github.com/FamilySearch/gedcomx-csharp.git
cd gedcomx-csharp
nuget restore
msbuild