[MS-DOCTRANS]:

Document Transforms Service Protocol

Intellectual Property Rights Notice for Open Specifications Documentation

§  Technical Documentation. Microsoft publishes Open Specifications documentation (“this documentation”) for protocols, file formats, data portability, computer languages, and standards support. Additionally, overview documents cover inter-protocol relationships and interactions.

§  Copyrights. This documentation is covered by Microsoft copyrights. Regardless of any other terms that are contained in the terms of use for the Microsoft website that hosts this documentation, you can make copies of it in order to develop implementations of the technologies that are described in this documentation and can distribute portions of it in your implementations that use these technologies or in your documentation as necessary to properly document the implementation. You can also distribute in your implementation, with or without modification, any schemas, IDLs, or code samples that are included in the documentation. This permission also applies to any documents that are referenced in the Open Specifications documentation.

§  No Trade Secrets. Microsoft does not claim any trade secret rights in this documentation.

§  Patents. Microsoft has patents that might cover your implementations of the technologies described in the Open Specifications documentation. Neither this notice nor Microsoft's delivery of this documentation grants any licenses under those patents or any other Microsoft patents. However, a given Open Specifications document might be covered by the Microsoft Open Specifications Promise or the Microsoft Community Promise. If you would prefer a written license, or if the technologies described in this documentation are not covered by the Open Specifications Promise or Community Promise, as applicable, patent licenses are available by contacting .

§  Trademarks. The names of companies and products contained in this documentation might be covered by trademarks or similar intellectual property rights. This notice does not grant any licenses under those rights. For a list of Microsoft trademarks, visit www.microsoft.com/trademarks.

§  Fictitious Names. The example companies, organizations, products, domain names, email addresses, logos, people, places, and events that are depicted in this documentation are fictitious. No association with any real company, organization, product, domain name, email address, logo, person, place, or event is intended or should be inferred.

Reservation of Rights. All other rights are reserved, and this notice does not grant any rights other than as specifically described above, whether by implication, estoppel, or otherwise.

Tools. The Open Specifications documentation does not require the use of Microsoft programming tools or programming environments in order for you to develop an implementation. If you have access to Microsoft programming tools and environments, you are free to take advantage of them. Certain Open Specifications documents are intended for use in conjunction with publicly available standards specifications and network programming art and, as such, assume that the reader either is familiar with the aforementioned material or has immediate access to it.

Revision Summary

Date / Revision History / Revision Class / Comments /
4/4/2008 / 0.1 / New / Initial Availability
4/25/2008 / 0.2 / Editorial / Revised and edited the technical content
6/27/2008 / 1.0 / Major / Revised and edited the technical content
8/15/2008 / 1.01 / Editorial / Revised and edited the technical content
12/12/2008 / 1.02 / Editorial / Revised and edited the technical content
7/13/2009 / 1.03 / Major / Revised and edited the technical content
8/28/2009 / 1.04 / Editorial / Revised and edited the technical content
11/6/2009 / 1.05 / Editorial / Revised and edited the technical content
2/19/2010 / 2.0 / Minor / Updated the technical content
3/31/2010 / 2.01 / Editorial / Revised and edited the technical content
4/30/2010 / 2.02 / Editorial / Revised and edited the technical content
6/7/2010 / 2.03 / Editorial / Revised and edited the technical content
6/29/2010 / 2.04 / Editorial / Changed language and formatting in the technical content.
7/23/2010 / 2.04 / None / No changes to the meaning, language, or formatting of the technical content.
9/27/2010 / 2.04 / None / No changes to the meaning, language, or formatting of the technical content.
11/15/2010 / 2.04 / None / No changes to the meaning, language, or formatting of the technical content.
12/17/2010 / 2.04 / None / No changes to the meaning, language, or formatting of the technical content.
3/18/2011 / 2.04 / None / No changes to the meaning, language, or formatting of the technical content.
6/10/2011 / 2.5 / Minor / Clarified the meaning of the technical content.
1/20/2012 / 3.0 / Major / Significantly changed the technical content.
4/11/2012 / 3.0 / None / No changes to the meaning, language, or formatting of the technical content.
7/16/2012 / 3.0 / None / No changes to the meaning, language, or formatting of the technical content.
9/12/2012 / 3.0 / None / No changes to the meaning, language, or formatting of the technical content.
10/8/2012 / 3.0 / None / No changes to the meaning, language, or formatting of the technical content.
2/11/2013 / 3.0 / None / No changes to the meaning, language, or formatting of the technical content.
7/30/2013 / 3.1 / Minor / Clarified the meaning of the technical content.
11/18/2013 / 3.1 / None / No changes to the meaning, language, or formatting of the technical content.
2/10/2014 / 3.1 / None / No changes to the meaning, language, or formatting of the technical content.
4/30/2014 / 3.1 / None / No changes to the meaning, language, or formatting of the technical content.
7/31/2014 / 3.1 / None / No changes to the meaning, language, or formatting of the technical content.
10/30/2014 / 3.1 / None / No changes to the meaning, language, or formatting of the technical content.
6/23/2016 / 3.1 / None / No changes to the meaning, language, or formatting of the technical content.
9/14/2016 / 3.1 / None / No changes to the meaning, language, or formatting of the technical content.

Table of Contents

1 Introduction 6

1.1 Glossary 6

1.2 References 7

1.2.1 Normative References 7

1.2.2 Informative References 7

1.3 Protocol Overview (Synopsis) 8

1.4 Relationship to Other Protocols 9

1.5 Prerequisites/Preconditions 9

1.6 Applicability Statement 9

1.7 Versioning and Capability Negotiation 9

1.8 Vendor-Extensible Fields 9

1.9 Standards Assignments 9

2 Messages 10

2.1 Transport 10

2.2 Common Data Types 10

2.2.1 CreateDCInfo 11

2.2.2 CreateHtmlInfo 12

2.2.3 BrowserType 13

2.2.4 CreationErrorType 13

3 Protocol Details 16

3.1 IHtmlTrLoadBalancer Server Details 16

3.1.1 Abstract Data Model 16

3.1.2 Timers 16

3.1.3 Initialization 16

3.1.4 Message Processing Events and Sequencing Rules 16

3.1.4.1 RegisterLauncher 16

3.1.4.2 UnRegisterLauncher 17

3.1.4.3 StrGetLauncher 17

3.1.4.4 LauncherTaskCompleted 18

3.2 IHtmlTrLoadBalancer Client Details 18

3.2.1 Abstract Data Model 18

3.2.2 Timers 18

3.2.3 Initialization 18

3.3 IDocumentConversionsLauncher Server Details 18

3.3.1 Abstract Data Model 18

3.3.2 Timers 18

3.3.3 Initialization 19

3.3.4 Message Processing Events and Sequencing Rules 19

3.3.4.1 ConvertFile 19

3.3.5 Timer Events 20

3.3.6 Other Local Events 20

3.4 IDocumentConversionsLauncher Client Details 20

3.4.1 Abstract Data Model 20

3.4.2 Timers 20

3.4.3 Initialization 20

3.4.4 Message Processing Events and Sequencing Rules 20

3.4.5 Timer Events 20

3.4.6 Other Local Events 20

3.5 IHtmlTrLauncher Server Details 20

3.5.1 Abstract Data Model 20

3.5.2 Timers 21

3.5.3 Initialization 21

3.5.4 Message Processing Events and Sequencing Rules 21

3.5.4.1 CHICreateHtml 21

3.5.5 Timer Events 22

3.5.6 Other Local Events 22

3.6 IHtmlTrLauncher Client Details 22

3.6.1 Abstract Data Model 22

3.6.2 Timers 22

3.6.3 Initialization 22

3.6.4 Message Processing Events and Sequencing Rules 22

3.6.5 Timer Events 22

3.6.6 Other Local Events 22

4 Protocol Examples 23

4.1 RegisterLauncher 23

4.1.1 RegisterLauncher Request Message 23

4.1.2 RegisterLauncher Response Message 23

4.2 StrGetLauncher 23

4.2.1 StrGetLauncher Request Message 23

4.2.2 StrGetLauncher Response Message 24

4.3 LauncherTaskCompleted 24

4.3.1 LauncherTaskCompleted Request Message 24

4.3.2 LauncherTaskCompleted Response Message 24

4.4 UnRegisterLauncher 25

4.4.1 UnRegisterLauncher Request Message 25

4.4.2 UnRegisterLauncher Response Message 25

4.5 ConvertFile 25

4.5.1 ConvertFile Request Message 26

4.5.2 ConvertFile Response Message 26

5 Security 27

5.1 Security Considerations for Implementers 27

5.2 Index of Security Parameters 27

6 Appendix A: Full Definition of Interfaces and Types 28

7 Appendix B: The ConfigInfo Parameter for Specific Conversion Applications 30

7.1 Common configInfo parameter structure 30

7.1.1 RcaTransformation 30

7.1.2 ConverterSettings 31

7.2 The configInfo parameter for the docxpageconverter.exe 31

7.3 The configInfo parameter for the XslApplicatorConverter.exe 31

7.4 The configInfo parameter for the InfoPathPageConverter.exe 32

7.5 Example Data 33

7.5.1 Example for the configInfo for the DocxPageConverter.exe 33

7.5.2 Example for the configInfo for the XslApplicatorConverter.exe 33

7.5.3 Example for the configInfo parameter for the InfoPathPageConverter.exe 34

8 Appendix C: Product Behavior 35

9 Change Tracking 36

10 Index 37

1  Introduction

The Document Transforms Service Protocol allows a protocol client to call a file conversion service which converts a file from one file format to another.

Sections 1.5, 1.8, 1.9, 2, and 3 of this specification are normative. All other sections and examples in this specification are informative.

1.1  Glossary

This document uses the following terms:

base64 encoding: A binary-to-text encoding scheme whereby an arbitrary sequence of bytes is converted to a sequence of printable ASCII characters, as described in [RFC4648].

conversion application: An application that can be used to convert a file from one format to another format.

conversion client: An entity that issues a request to convert a file from one format to another format.

conversion task: An operation that converts a file from one format to another format.

document library: A type of list that is a container for documents and folders.

farm: A group of computers that work together as a single system to help ensure that applications and resources are available. Also referred to as server farm.

file extension: The sequence of characters in a file's name between the end of the file's name and the last "." character. Vendors of applications choose such sequences for the applications to uniquely identify files that were created by those applications. This allows file management software to determine which application are to be used to open a file.

form: A document with a set of controls into which users can enter information. Controls on a form can be bound to elements in the data source of the form, such as fields and groups. See also bind.

GUIDString: A GUID in the form of an ASCII or Unicode string, consisting of one group of 8 hexadecimal digits, followed by three groups of 4 hexadecimal digits each, followed by one group of 12 hexadecimal digits. It is the standard representation of a GUID, as described in [RFC4122] section 3. For example, "6B29FC40-CA47-1067-B31D-00DD010662DA". Unlike a curly braced GUID string, a GUIDString is not enclosed in braces.

relative path: A path that is implied by the active working directory or is calculated based on a specified directory. If users enter a command that refers to a file and the full path is not entered, the active working directory is the relative path of the referenced file.

result file: The primary file that is generated by a conversion application when the conversion task is finished.

root element: The top-level element in an XML document. It contains all other elements and is not contained by any other element, as described in [XML].

server-relative URL: A relative URL that does not specify a scheme or host, and assumes a base URI of the root of the host, as described in [RFC3986].

supporting file: Any additional file, other than the result file, that is created during document transformation.

supporting folder: A folder in which supporting files are stored.

Unicode: A character encoding standard developed by the Unicode Consortium that represents almost all of the written languages of the world. The Unicode standard [UNICODE5.0.0/2007] provides three forms (UTF-8, UTF-16, and UTF-32) and seven schemes (UTF-8, UTF-16, UTF-16 BE, UTF-16 LE, UTF-32, UTF-32 LE, and UTF-32 BE).

Uniform Resource Locator (URL): A string of characters in a standardized format that identifies a document or resource on the World Wide Web. The format is as specified in [RFC1738].

user-agent string: A string that identifies the protocol client that is initiating a request, as described in [RFC2616].

XML: The Extensible Markup Language, as described in [XML1.0].

XML schema: A description of a type of XML document that is typically expressed in terms of constraints on the structure and content of documents of that type, in addition to the basic syntax constraints that are imposed by XML itself. An XML schema provides a view of a document type at a relatively high level of abstraction.

XSL Transformation (XSLT): A declarative, XML-based language that is used to present or transform XML data. It is designed for use as part of the Extensible Stylesheet Language (XSL).

MAY, SHOULD, MUST, SHOULD NOT, MUST NOT: These terms (in all caps) are used as defined in [RFC2119]. All statements of optional behavior use either MAY, SHOULD, or SHOULD NOT.

1.2  References

Links to a document in the Microsoft Open Specifications library point to the correct section in the most recently published version of the referenced document. However, because individual documents in the library are not updated at the same time, the section numbers in the documents may not match. You can confirm the correct section numbering by checking the Errata.

1.2.1  Normative References

We conduct frequent surveys of the normative references to assure their continued availability. If you have any issue with finding a normative reference, please contact . We will assist you in finding the relevant information.

[ECMA-376] ECMA International, "Office Open XML File Formats", 1st Edition, ECMA-376, December 2006, http://www.ecma-international.org/publications/standards/Ecma-376.htm

[MS-IPFF2] Microsoft Corporation, "InfoPath Form Template Format Version 2".

[MS-IPFF] Microsoft Corporation, "InfoPath Form Template Format".

[MS-NRTP] Microsoft Corporation, ".NET Remoting: Core Protocol".

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997, http://www.rfc-editor.org/rfc/rfc2119.txt

[XML10] World Wide Web Consortium, "Extensible Markup Language (XML) 1.0 (Third Edition)", February 2004, http://www.w3.org/TR/2004/REC-xml-20040204/