HotDocs.Sdk Namespace
The HotDocs.Sdk namespace contains types that are generally useful for integrating with HotDocs. Many of the types are relevant not only to HotDocs Server and HotDocs Cloud Services, but also the desktop versions of HotDocs.

The types in this namespace can broadly be divided into a few categories:

  • Types for building or interpreting HotDocs XML answers (for use in pushing data into or extracting data from HotDocs interviews and/or assemblies);
  • Types for interpreting XML template manifests (for use in analyzing template dependencies);
  • Types for understanding the structure of template packages (for use in extracting files);
  • Types for representing HotDocs templates in a location-independent way; and
  • General-purpose types to represent settings, options, etc. that may be applicable across HotDocs products.
Classes

  Class Description
Public class AdditionalFile
AdditionalFile is used by TemplateManifest to identify files that were listed in the manifest as miscellaneous dependencies. Such files are not typically referred to directly by the template or component file, but were explicitly declared by the template author as being necessary for the proper operation of the template. Examples may include image files that could potentially be referred to by a dynamic INSERT IMAGE instruction, or other files that may be required to be in the same location as the template in custom integration scenarios.
Public class Answer
The Answer class is an implementation of the "opaque class cluster" pattern. Callers do not create instances of Answer directly, but use AnswerCollection.CreateAnswer(). The object that is returned is actually an instance of a private subclass of Answer, but you only access it via public methods and properties of the Answer class.
Protected class Answer ValueNode T 
ValueNode summary
Protected class Answer ValueNodeList T 
ValueNodeList description
Public class AnswerCollection
A collection of HotDocs answers.
Public class AnswerSummaryOptions
AnswerSummaryOptions encapsulates the interview options related to Answer summaries. They are partitioned into their own class (rather than being part of InterviewOptions) because
  1. they're very specialized;
  2. they are all irrelevant if the host application disables answer summaries; and
  3. at some point in the future, answer summaries may be dealt with independently of interviews.
Public class AssembleDocumentSettings
AssembleDocumentSettings encapsulates all the document assembly settings that can be specified in the HotDocs Server Open SDK.
Public class CustomDataSourcesSection
CustomDataSourcesSection contains the settings used for data sources
Public class DataSource
DataSource has information about the current data source, such as id, name, type, and fields.
Public class DataSourceElement
DataSourceElement is a class representing a data source. It has Name and Address properties
Public class DataSourceField
DataSourceField provides information about the current field (such as source name, type, etc.)
Public class DataSourcesCollection
DataSourcesCollection a collection of data sources
Public class Dependency
A helper class to contain information of another file a template depends upon.
Public class FileNameInfo
A helper class to store a file name
Public class InterviewSettings
InterviewSettings encapsulates all the settings that can be specified when requesting HotDocs browser-based interviews.
Public class PackagePathTemplateLocation
PackagePathTemplateLocation is a PackageTemplateLocation that expects a package to exist on disk. Furthermore, the package content is extracted to a subfolder of the package folder. The subfolder's name consists of the package ID followed by a ".dir" extension. To extract package content elsewhere, derive a different PackageTemplateLocation class.
Public class PackageTemplateLocation
PackageTemplateLocation is the base class representing all template locations where the template resides in a package. This class provides access to the package ID, the package manifest, and the package itself.
Public class PathTemplateLocation
PathTemplateLocation is a TemplateLocation class that represents the directory path for a template that simply resides as a file in the file system. The template does not reside in a package or database, for example.
Public class Settings
This Settings class provides a means to associate a setting with a string value. Also converting settings from Tristate boolean to string and vice versa are provided here.
Public class Template
This class represents a template that is managed by the host application, and (optionally) some assembly parameters (as specified by switches) for that template. The location of the template is defined by Template.Location.
Public class TemplateInfo
This class stores information about a template.
Public class TemplateLocation

TemplateLocation is an abstract class serves as the base class for all template location objects. Template location objects are the means for designating the location of a file for a Template object. For example, a template may reside in a file system folder, a document management system (DMS), another type of database, a template package, etc. The host application must either choose one of the concrete TemplateLocation classes implemented in the SDK (e.g. PathTemplateLocation or PackagePathTemplateLocation) or implement a custom template location.

The TemplateLocation class also serves as a dependency injection container for any TemplateLocation classes used by the host application. TemplateLocation class registration is done at application startup time. To register a TemplateLocation class, call TemplateLocation.RegisterLocation.

Public class TemplateManifest
TemplateManifest contains the information needed for document assembly creation with the specified template file, sometimes called the 'main template'
Public class TemplatePackage
A class for HotDocs template packages. A template package is a zip file containing a template and all it's dependent files. Optionally, a package can also be encrypted.
Public class TemplatePackageManifest
The manifest information of a package. All this information will be serialized as XML and stored in the package as another file with the name as defined at TemplatePackage.ManifestName Given a variable 'package' of type TemplatePackage, the main template name is package.Manifest.MainTemplate.FileName
Public class Util
The Util class contains many helper methods and properties used by other classes in the Sdk, including HotDocs.Sdk.Server and SamplePortal.
Public class VariableInfo
VariableInfo contains basic metadata (name and type) about a HotDocs variable. This type is used by TemplateManifest to list the variables that may potentially be gathered by an interview and/or used in a template.
Structures

  Structure Description
Public structure DateValue
A Date value.
Public structure IndexedValue
An IndexedValue represents a single value within a HotDocs Answer object containing multiple values. (A so-called "Repeated Answer".) IndexedValues are used to facilitate easy iteration of the values within a repeated answer -- see the Answer.IndexedValues property.
Public structure MultipleChoiceValue
A Multiple Choice value.
Public structure NumberValue
A HotDocs Number value.
Public structure TextValue
A HotDocs Text value.
Public structure TrueFalseValue
TrueFalse value
Interfaces

  Interface Description
Public interface IValue
An interface for a HotDocs value.
Delegates

  Delegate Description
Public delegate Answer ValueEnumerationDelegate
The ValueEnumeration delegate.
Public delegate Answer ValueMutator T 
The ValueMutator delegate.
Enumerations

  Enumeration Description
Public enumeration AnswerSummaryFormat
Answer summaries can be formatted in 1-column or 2-column format. By default the property defers to the default configured on the server.
Public enumeration BorderType
BorderType specifies the border style for the answer summary table: None, Plain or Sculpted. Applicable only to 2-column answer summary layout. By default the property defers to the behavior configured on the server.
Public enumeration DataSourceBackfillType
DataSourceBackfillType enumerates the ways in which modified answers may be written back to the original data source.
Public enumeration DataSourceFieldType
DataSourceFieldType lists the possible types of fields in data sources (Text, Number, Date, or TrueFalse).
Public enumeration DataSourceType
DataSourceType indicates from where the answers were supplied to the interview or assembly.
Public enumeration DateOrder
HotDocs uses DateOrder setting during assembly when it needs to interpret ambiguously-written date strings (for example, date format examples in which the day, month and/or year are all expressed as numbers). By default this property respects the behavior configured on the server. Also note that this property is only respected by HotDocs Cloud Services; HotDocs Server always adheres to the behavior as configured in the management console.
Public enumeration DependencyType
Catalogs the types of dependency a HotDocs template can have on another file. NOTE: It needs to be kept in sync with the HotDocs desktop and server IDL files!
Public enumeration DocumentType
A type of document that can be produced by assembling a document from a template.
Public enumeration ManifestParseFlags
These flags enumerate which portions of a template manifest (or manifests) can be parsed (when calling ParseManifest).
Public enumeration TemplateType
The type of HotDocs template.
Public enumeration Tristate
Tristate is a way to represent boolean values and allow "default" values if defined elsewhere
Public enumeration UnansweredFormat
Dictates what to merge when a value for which no answer is available is merged into document text. By default this property respects the behavior configured on the server. Also note that this property is only respected by HotDocs Cloud Services; HotDocs Server always adheres to the behavior as configured in the management console.
Public enumeration ValueType
An enumeration for the various types of HotDocs answer values.