Welcome
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.
Data Models
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.
GEDCOM X Web Services
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.
Reading and Writing XML and JSON
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.
GEDCOM X Extensions
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.
Use
Here's how you might use this project.
NuGet
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. |
Finding the Latest Version
To use the latest version of the libraries, visit the NuGet links above.
Build
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