PortCMIS: more documentation

git-svn-id: https://svn.apache.org/repos/asf/chemistry/portcmis/trunk@1741428 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/PortCMIS/binding/BindingIntf.cs b/PortCMIS/binding/BindingIntf.cs
index 4d939e2..cdf0b2e 100644
--- a/PortCMIS/binding/BindingIntf.cs
+++ b/PortCMIS/binding/BindingIntf.cs
@@ -426,45 +426,74 @@
         }

     }

 

+    /// <summary>

+    /// A factory that created low-level binding objects.

+    /// </summary>

     public class CmisBindingFactory

     {

-        // Default CMIS AtomPub binding SPI implementation

+        /// <summary>

+        /// Default CMIS AtomPub binding SPI implementation class name.

+        /// </summary>

         public const string BindingSpiAtomPub = "PortCMIS.Binding.AtomPub.CmisAtomPubSpi";

-        // Default CMIS Browser binding SPI implementation

+        /// <summary>

+        /// Default CMIS Browser binding SPI implementation class name.

+        /// </summary>

         public const string BindingSpiBrowser = "PortCMIS.Binding.Browser.CmisBrowserSpi";

 

+        /// <summary>

+        /// Standard authentication provider class name.

+        /// </summary>

         public const string StandardAuthenticationProviderClass = "PortCMIS.Binding.StandardAuthenticationProvider";

+

+        /// <summary>

+        /// Default HTTP invoker class name.

+        /// </summary>

         public const string DefaultHttpInvokerClass = "PortCMIS.Binding.Http.DefaultHttpInvoker";

 

         private IDictionary<string, string> defaults;

 

+        /// <summary>

+        /// This is a factory.

+        /// </summary>

         private CmisBindingFactory()

         {

             defaults = CreateNewDefaultParameters();

         }

 

+        /// <summary>

+        /// Creates a new instance of this factory.

+        /// </summary>

+        /// <returns>a factory object</returns>

         public static CmisBindingFactory NewInstance()

         {

             return new CmisBindingFactory();

         }

 

-        public IDictionary<string, string> GetDefaultSessionParameters()

+        /// <value>

+        /// Gets and sets default session parameters.

+        /// </value>

+        public IDictionary<string, string> DefaultSessionParameters

         {

-            return defaults;

-        }

-

-        public void SetDefaultSessionParameters(IDictionary<string, string> sessionParameters)

-        {

-            if (sessionParameters == null)

+            get { return defaults; }

+            set

             {

-                defaults = CreateNewDefaultParameters();

-            }

-            else

-            {

-                defaults = sessionParameters;

+                if (value == null)

+                {

+                    defaults = CreateNewDefaultParameters();

+                }

+                else

+                {

+                    defaults = value;

+                }

             }

         }

 

+        /// <summary>

+        /// Creates a binding object for custom binding implementations.

+        /// </summary>

+        /// <param name="sessionParameters">the session parameters</param>

+        /// <param name="authenticationProvider">an authentication provider instance or <c>null</c> to use the default implementation</param>

+        /// <returns>a low-level binding object</returns>

         public ICmisBinding CreateCmisBinding(IDictionary<string, string> sessionParameters, IAuthenticationProvider authenticationProvider)

         {

             CheckSessionParameters(sessionParameters, true);

@@ -473,6 +502,12 @@
             return new CmisBinding(sessionParameters, authenticationProvider);

         }

 

+        /// <summary>

+        /// Creates an Browser binding object.

+        /// </summary>

+        /// <param name="sessionParameters">the session parameters</param>

+        /// <param name="authenticationProvider">an authentication provider instance or <c>null</c> to use the default implementation</param>

+        /// <returns>a low-level binding object</returns>

         public ICmisBinding CreateCmisBrowserBinding(IDictionary<string, string> sessionParameters, IAuthenticationProvider authenticationProvider)

         {

             CheckSessionParameters(sessionParameters, false);

@@ -500,6 +535,12 @@
             return new CmisBinding(sessionParameters, authenticationProvider);

         }

 

+        /// <summary>

+        /// Creates an AtomPub binding object.

+        /// </summary>

+        /// <param name="sessionParameters">the session parameters</param>

+        /// <param name="authenticationProvider">an authentication provider instance or <c>null</c> to use the default implementation</param>

+        /// <returns>a low-level binding object</returns>

         public ICmisBinding CreateCmisAtomPubBinding(IDictionary<string, string> sessionParameters, IAuthenticationProvider authenticationProvider)

         {

             CheckSessionParameters(sessionParameters, false);

@@ -523,6 +564,15 @@
             return new CmisBinding(sessionParameters, authenticationProvider);

         }

 

+        /// <summary>

+        /// Creates a Web Services binding object.

+        /// </summary>

+        /// <remarks>

+        /// PortCMIS doesn't support the Web Services binding. It may be implemented in the future.

+        /// </remarks>

+        /// <param name="sessionParameters">the session parameters</param>

+        /// <param name="authenticationProvider">an authentication provider instance or <c>null</c> to use the default implementation</param>

+        /// <returns>a low-level binding object</returns>

         public ICmisBinding CreateCmisWebServicesBinding(IDictionary<string, string> sessionParameters, IAuthenticationProvider authenticationProvider)

         {

             throw new ArgumentException("The Web Services binding is not supported!");

diff --git a/PortCMIS/binding/HttpPortable.cs b/PortCMIS/binding/HttpPortable.cs
index 71ee6e6..ef44fe5 100644
--- a/PortCMIS/binding/HttpPortable.cs
+++ b/PortCMIS/binding/HttpPortable.cs
@@ -31,6 +31,9 @@
 

 namespace PortCMIS.Binding.Http

 {

+    /// <summary>

+    /// Default HTTP invoker implementation for portable environments. 

+    /// </summary>

     public class DefaultHttpInvoker : IHttpInvoker

     {

         private const string InvokerHttpClient = "org.apache.chemistry.portcmis.invoker.httpclient";

diff --git a/PortCMIS/binding/Services.cs b/PortCMIS/binding/Services.cs
index 6e9fdc1..e96f1f4 100644
--- a/PortCMIS/binding/Services.cs
+++ b/PortCMIS/binding/Services.cs
@@ -25,8 +25,17 @@
 

 namespace PortCMIS.Binding.Services

 {

+    /// <summary>

+    /// Repository Service interface.

+    /// </summary>

     public interface IRepositoryService

     {

+        /// <summary>

+        /// Returns a list of CMIS repository information available from this CMIS service endpoint.

+        /// </summary>

+        /// <remarks>

+        /// In contrast to the CMIS specification this method returns repository infos not only repository IDs.

+        /// </remarks>

         IList<IRepositoryInfo> GetRepositoryInfos(IExtensionsData extension);

 

         IRepositoryInfo GetRepositoryInfo(string repositoryId, IExtensionsData extension);

@@ -46,6 +55,9 @@
         void DeleteType(string repositoryId, string typeId, IExtensionsData extension);

     }

 

+    /// <summary>

+    /// Navigation Service interface.

+    /// </summary>

     public interface INavigationService

     {

         IObjectInFolderList GetChildren(string repositoryId, string folderId, string filter, string orderBy,

@@ -71,6 +83,9 @@
             BigInteger? maxItems, BigInteger? skipCount, IExtensionsData extension);

     }

 

+    /// <summary>

+    /// Object Service interface.

+    /// </summary>

     public interface IObjectService

     {

         string CreateDocument(string repositoryId, IProperties properties, string folderId, IContentStream contentStream,

@@ -133,6 +148,9 @@
             IContentStream contentStream, IExtensionsData extension);

     }

 

+    /// <summary>

+    /// Versioning Service interface.

+    /// </summary>

     public interface IVersioningService

     {

         void CheckOut(string repositoryId, ref string objectId, IExtensionsData extension, out bool? contentCopied);

@@ -154,6 +172,9 @@
             bool? includeAllowableActions, IExtensionsData extension);

     }

 

+    /// <summary>

+    /// Relationship Service interface.

+    /// </summary>

     public interface IRelationshipService

     {

         IObjectList GetObjectRelationships(string repositoryId, string objectId, bool? includeSubRelationshipTypes,

@@ -161,6 +182,9 @@
             BigInteger? maxItems, BigInteger? skipCount, IExtensionsData extension);

     }

 

+    /// <summary>

+    /// Discovery Service interface.

+    /// </summary>

     public interface IDiscoveryService

     {

         IObjectList Query(string repositoryId, string statement, bool? searchAllVersions,

@@ -171,6 +195,9 @@
            string filter, bool? includePolicyIds, bool? includeAcl, BigInteger? maxItems, IExtensionsData extension);

     }

 

+    /// <summary>

+    /// MultiFiling Service interface.

+    /// </summary>

     public interface IMultiFilingService

     {

         void AddObjectToFolder(string repositoryId, string objectId, string folderId, bool? allVersions, IExtensionsData extension);

@@ -178,6 +205,9 @@
         void RemoveObjectFromFolder(string repositoryId, string objectId, string folderId, IExtensionsData extension);

     }

 

+    /// <summary>

+    /// ACL Service interface.

+    /// </summary>

     public interface IAclService

     {

         IAcl GetAcl(string repositoryId, string objectId, bool? onlyBasicPermissions, IExtensionsData extension);

@@ -186,6 +216,9 @@
             IExtensionsData extension);

     }

 

+    /// <summary>

+    /// Policy Service interface.

+    /// </summary>

     public interface IPolicyService

     {

         void ApplyPolicy(string repositoryId, string policyId, string objectId, IExtensionsData extension);

diff --git a/PortCMIS/binding/Url.cs b/PortCMIS/binding/Url.cs
index 3035311..6999cca 100644
--- a/PortCMIS/binding/Url.cs
+++ b/PortCMIS/binding/Url.cs
@@ -25,15 +25,25 @@
 

 namespace PortCMIS.Binding

 {

+    /// <summary>

+    /// This class assembles URLs.

+    /// </summary>

     public class UrlBuilder

     {

         private UriBuilder uri;

 

+        /// <value>

+        /// The current URL.

+        /// </value>

         public Uri Url

         {

             get { return uri.Uri; }

         }

 

+        /// <summary>

+        /// Creates a new instance with a given URL.

+        /// </summary>

+        /// <param name="url">the URL</param>

         public UrlBuilder(string url)

         {

             if (url == null)

@@ -44,6 +54,12 @@
             uri = new UriBuilder(url);

         }

 

+        /// <summary>

+        /// Adds a parameter.

+        /// </summary>

+        /// <param name="name">the parameter name</param>

+        /// <param name="value">the parameter value</param>

+        /// <returns>this UrlBuilder object</returns>

         public UrlBuilder AddParameter(string name, object value)

         {

             if (name == null || value == null)

@@ -65,11 +81,22 @@
             return this;

         }

 

+        /// <summary>

+        /// Adds to the URL path.

+        /// </summary>

+        /// <param name="path">the path</param>

+        /// <returns>this UrlBuilder object</returns>

         public UrlBuilder AddPath(string path)

         {

             return AddPathPart(path, false);

         }

 

+        /// <summary>

+        /// Adds to the URL path.

+        /// </summary>

+        /// <param name="part">the path part</param>

+        /// <param name="quoteSlash">indicator whether slashes should be quoted or not</param>

+        /// <returns>this UrlBuilder object</returns>

         protected UrlBuilder AddPathPart(string part, bool quoteSlash)

         {

             if (String.IsNullOrEmpty(part))

@@ -92,7 +119,7 @@
 

         private static readonly char[] RFC7232Reserved = ";?:@&=+$,[]".ToCharArray();

 

-        public string QuoteURIPathComponent(string s, bool quoteSlash)

+        private string QuoteURIPathComponent(string s, bool quoteSlash)

         {

             if (String.IsNullOrEmpty(s))

             {

@@ -114,6 +141,11 @@
             return result.ToString();

         }

 

+        /// <summary>

+        /// Normalizes a parameter value.

+        /// </summary>

+        /// <param name="value">the value</param>

+        /// <returns>the normalized value as string</returns>

         public static string NormalizeParameter(object value)

         {

             if (value == null)

@@ -136,6 +168,10 @@
             return value.ToString();

         }

 

+        /// <summary>

+        /// Returns the current URL.

+        /// </summary>

+        /// <returns>the current URL</returns>

         public override string ToString()

         {

             return Url.ToString();

diff --git a/PortCMIS/binding/atompub/AtomPubUtils.cs b/PortCMIS/binding/atompub/AtomPubUtils.cs
index 4d03f24..05510b2 100644
--- a/PortCMIS/binding/atompub/AtomPubUtils.cs
+++ b/PortCMIS/binding/atompub/AtomPubUtils.cs
@@ -73,7 +73,7 @@
                         string uri = parser.NamespaceURI;

                         string local = parser.LocalName;

 

-                        if (uri == XmlConstants.NAMESPACE_ATOM)

+                        if (uri == XmlConstants.NamespaceAtom)

                         {

                             if (local == XmlConstants.TAG_FEED)

                             {

@@ -86,7 +86,7 @@
                                 break;

                             }

                         }

-                        else if (uri == XmlConstants.NAMESPACE_CMIS)

+                        else if (uri == XmlConstants.NamespaceCmis)

                         {

                             if (local == XmlConstants.TAG_ALLOWABLEACTIONS)

                             {

@@ -99,7 +99,7 @@
                                 break;

                             }

                         }

-                        else if (uri == XmlConstants.NAMESPACE_APP)

+                        else if (uri == XmlConstants.NamespaceApp)

                         {

                             if (local == XmlConstants.TAG_SERVICE)

                             {

@@ -154,7 +154,7 @@
                     string uri = parser.NamespaceURI;

                     string local = parser.LocalName;

 

-                    if (uri == XmlConstants.NAMESPACE_APP)

+                    if (uri == XmlConstants.NamespaceApp)

                     {

                         if (local == XmlConstants.TAG_WORKSPACE)

                         {

@@ -246,7 +246,7 @@
                     string uri = parser.NamespaceURI;

                     string local = parser.LocalName;

 

-                    if (uri == XmlConstants.NAMESPACE_ATOM)

+                    if (uri == XmlConstants.NamespaceAtom)

                     {

                         if (local == XmlConstants.TAG_LINK)

                         {

@@ -261,7 +261,7 @@
                             XmlUtils.Skip(parser);

                         }

                     }

-                    else if (uri == XmlConstants.NAMESPACE_RESTATOM)

+                    else if (uri == XmlConstants.NamespaceRestAtom)

                     {

                         if (local == XmlConstants.TAG_NUM_ITEMS)

                         {

@@ -272,7 +272,7 @@
                             XmlUtils.Skip(parser);

                         }

                     }

-                    else if (uri == XmlConstants.NAMESPACE_APACHE_CHEMISTRY)

+                    else if (uri == XmlConstants.NamespaceApacheChemistry)

                     {

                         result.AddElement(ParseText(parser));

                     }

@@ -373,7 +373,7 @@
             string uri = parser.NamespaceURI;

             string local = parser.LocalName;

 

-            if (uri == XmlConstants.NAMESPACE_RESTATOM)

+            if (uri == XmlConstants.NamespaceRestAtom)

             {

                 if (local == XmlConstants.TAG_OBJECT)

                 {

@@ -393,7 +393,7 @@
                     return ParseChildren(parser);

                 }

             }

-            else if (uri == XmlConstants.NAMESPACE_ATOM)

+            else if (uri == XmlConstants.NamespaceAtom)

             {

                 if (local == XmlConstants.TAG_LINK)

                 {

@@ -431,7 +431,7 @@
                     string tagUri = parser.NamespaceURI;

                     string tagLocal = parser.LocalName;

 

-                    if (tagUri == XmlConstants.NAMESPACE_ATOM)

+                    if (tagUri == XmlConstants.NamespaceAtom)

                     {

                         if (tagLocal == XmlConstants.TAG_FEED)

                         {

@@ -473,7 +473,7 @@
             string uri = parser.NamespaceURI;

             string local = parser.LocalName;

 

-            if (uri == XmlConstants.NAMESPACE_RESTATOM)

+            if (uri == XmlConstants.NamespaceRestAtom)

             {

                 if (local == XmlConstants.TAG_REPOSITORY_INFO)

                 {

@@ -484,14 +484,14 @@
                     return ParseTemplate(parser);

                 }

             }

-            else if (uri == XmlConstants.NAMESPACE_ATOM)

+            else if (uri == XmlConstants.NamespaceAtom)

             {

                 if (local == XmlConstants.TAG_LINK)

                 {

                     return ParseLink(parser);

                 }

             }

-            else if (uri == XmlConstants.NAMESPACE_APP)

+            else if (uri == XmlConstants.NamespaceApp)

             {

                 if (local == XmlConstants.TAG_COLLECTION)

                 {

@@ -526,7 +526,7 @@
                     string tagUri = parser.NamespaceURI;

                     string tagLocal = parser.LocalName;

 

-                    if (tagUri == XmlConstants.NAMESPACE_RESTATOM

+                    if (tagUri == XmlConstants.NamespaceRestAtom

                             && tagLocal == XmlConstants.TAG_COLLECTION_TYPE)

                     {

                         result["collectionType"] = XmlUtils.ReadText(parser, XmlConstraints.MaxStringLength);

@@ -573,7 +573,7 @@
                     string tagUri = parser.NamespaceURI;

                     string tagLocal = parser.LocalName;

 

-                    if (tagUri == XmlConstants.NAMESPACE_RESTATOM)

+                    if (tagUri == XmlConstants.NamespaceRestAtom)

                     {

                         if (tagLocal == XmlConstants.TAG_TEMPLATE_TEMPLATE)

                         {

@@ -1263,41 +1263,41 @@
             {

                 XmlUtils.StartXmlDocument(writer);

 

-                writer.WriteStartElement(XmlConstants.PREFIX_ATOM, "entry", XmlConstants.NAMESPACE_ATOM);

-                writer.WriteAttributeString("xmlns", XmlConstants.PREFIX_ATOM, null, XmlConstants.NAMESPACE_ATOM);

-                writer.WriteAttributeString("xmlns", XmlConstants.PREFIX_CMIS, null, XmlConstants.NAMESPACE_CMIS);

-                writer.WriteAttributeString("xmlns", XmlConstants.PREFIX_RESTATOM, null, XmlConstants.NAMESPACE_RESTATOM);

+                writer.WriteStartElement(XmlConstants.PrefixAtom, "entry", XmlConstants.NamespaceAtom);

+                writer.WriteAttributeString("xmlns", XmlConstants.PrefixAtom, null, XmlConstants.NamespaceAtom);

+                writer.WriteAttributeString("xmlns", XmlConstants.PrefixCmis, null, XmlConstants.NamespaceCmis);

+                writer.WriteAttributeString("xmlns", XmlConstants.PrefixRestAtom, null, XmlConstants.NamespaceRestAtom);

 

                 if (contentStream != null && contentStream.FileName != null)

                 {

-                    writer.WriteAttributeString("xmlns", XmlConstants.PREFIX_APACHE_CHEMISTY, null, XmlConstants.NAMESPACE_APACHE_CHEMISTRY);

+                    writer.WriteAttributeString("xmlns", XmlConstants.PrefixApacheChemistry, null, XmlConstants.NamespaceApacheChemistry);

                 }

 

                 // atom:id

-                XmlUtils.Write(writer, XmlConstants.PREFIX_ATOM, XmlConstants.NAMESPACE_ATOM, XmlConstants.TAG_ATOM_ID,

+                XmlUtils.Write(writer, XmlConstants.PrefixAtom, XmlConstants.NamespaceAtom, XmlConstants.TAG_ATOM_ID,

                         "urn:uuid:00000000-0000-0000-0000-00000000000");

 

                 // atom:title

-                XmlUtils.Write(writer, XmlConstants.PREFIX_ATOM, XmlConstants.NAMESPACE_ATOM, XmlConstants.TAG_ATOM_TITLE, GetTitle());

+                XmlUtils.Write(writer, XmlConstants.PrefixAtom, XmlConstants.NamespaceAtom, XmlConstants.TAG_ATOM_TITLE, GetTitle());

 

                 // atom:updated

-                XmlUtils.Write(writer, XmlConstants.PREFIX_ATOM, XmlConstants.NAMESPACE_ATOM, XmlConstants.TAG_ATOM_UPDATED, DateTime.UtcNow);

+                XmlUtils.Write(writer, XmlConstants.PrefixAtom, XmlConstants.NamespaceAtom, XmlConstants.TAG_ATOM_UPDATED, DateTime.UtcNow);

 

                 // content

                 if (stream != null)

                 {

-                    writer.WriteStartElement(XmlConstants.PREFIX_RESTATOM, XmlConstants.TAG_CONTENT, XmlConstants.NAMESPACE_RESTATOM);

+                    writer.WriteStartElement(XmlConstants.PrefixRestAtom, XmlConstants.TAG_CONTENT, XmlConstants.NamespaceRestAtom);

 

-                    XmlUtils.Write(writer, XmlConstants.PREFIX_RESTATOM, XmlConstants.NAMESPACE_RESTATOM,

+                    XmlUtils.Write(writer, XmlConstants.PrefixRestAtom, XmlConstants.NamespaceRestAtom,

                             XmlConstants.TAG_CONTENT_MEDIATYPE, contentStream.MimeType);

 

                     if (contentStream.FileName != null)

                     {

-                        XmlUtils.Write(writer, XmlConstants.PREFIX_APACHE_CHEMISTY, XmlConstants.NAMESPACE_APACHE_CHEMISTRY,

+                        XmlUtils.Write(writer, XmlConstants.PrefixApacheChemistry, XmlConstants.NamespaceApacheChemistry,

                                 XmlConstants.TAG_CONTENT_FILENAME, contentStream.FileName);

                     }

 

-                    writer.WriteStartElement(XmlConstants.PREFIX_RESTATOM, XmlConstants.TAG_CONTENT_BASE64, XmlConstants.NAMESPACE_RESTATOM);

+                    writer.WriteStartElement(XmlConstants.PrefixRestAtom, XmlConstants.TAG_CONTENT_BASE64, XmlConstants.NamespaceRestAtom);

                     WriteContent(writer);

                     writer.WriteEndElement();

 

@@ -1307,19 +1307,19 @@
                 // object

                 if (objectData != null)

                 {

-                    XmlConverter.WriteObject(writer, cmisVersion, XmlConstants.NAMESPACE_RESTATOM, objectData);

+                    XmlConverter.WriteObject(writer, cmisVersion, XmlConstants.NamespaceRestAtom, objectData);

                 }

 

                 // type

                 if (typeDef != null)

                 {

-                    XmlConverter.WriteTypeDefinition(writer, cmisVersion, XmlConstants.NAMESPACE_RESTATOM, typeDef);

+                    XmlConverter.WriteTypeDefinition(writer, cmisVersion, XmlConstants.NamespaceRestAtom, typeDef);

                 }

 

                 // bulk update

                 if (bulkUpdate != null)

                 {

-                    XmlConverter.WriteBulkUpdate(writer, XmlConstants.NAMESPACE_RESTATOM, bulkUpdate);

+                    XmlConverter.WriteBulkUpdate(writer, XmlConstants.NamespaceRestAtom, bulkUpdate);

                 }

 

                 // end entry

diff --git a/PortCMIS/binding/atompub/XmlConstants.cs b/PortCMIS/binding/atompub/XmlConstants.cs
index 5354e41..f546ea4 100644
--- a/PortCMIS/binding/atompub/XmlConstants.cs
+++ b/PortCMIS/binding/atompub/XmlConstants.cs
@@ -28,20 +28,20 @@
     class XmlConstants

     {

         // namespaces

-        public const string NAMESPACE_CMIS = "http://docs.oasis-open.org/ns/cmis/core/200908/";

-        public const string NAMESPACE_ATOM = "http://www.w3.org/2005/Atom";

-        public const string NAMESPACE_APP = "http://www.w3.org/2007/app";

-        public const string NAMESPACE_RESTATOM = "http://docs.oasis-open.org/ns/cmis/restatom/200908/";

-        public const string NAMESPACE_XSI = "http://www.w3.org/2001/XMLSchema-instance";

-        public const string NAMESPACE_APACHE_CHEMISTRY = "http://chemistry.apache.org/";

+        public const string NamespaceCmis = "http://docs.oasis-open.org/ns/cmis/core/200908/";

+        public const string NamespaceAtom = "http://www.w3.org/2005/Atom";

+        public const string NamespaceApp = "http://www.w3.org/2007/app";

+        public const string NamespaceRestAtom = "http://docs.oasis-open.org/ns/cmis/restatom/200908/";

+        public const string NamespaceXsi = "http://www.w3.org/2001/XMLSchema-instance";

+        public const string NamespaceApacheChemistry = "http://chemistry.apache.org/";

 

         // prefixes

-        public const string PREFIX_XSI = "xsi";

-        public const string PREFIX_ATOM = "atom";

-        public const string PREFIX_APP = "app";

-        public const string PREFIX_CMIS = "cmis";

-        public const string PREFIX_RESTATOM = "cmisra";

-        public const string PREFIX_APACHE_CHEMISTY = "chemistry";

+        public const string PrefixXsi = "xsi";

+        public const string PrefixAtom = "atom";

+        public const string PrefixApp = "app";

+        public const string PrefixCmis = "cmis";

+        public const string PrefixRestAtom = "cmisra";

+        public const string PrefixApacheChemistry = "chemistry";

 

         // service doc

         public const string TAG_SERVICE = "service";

diff --git a/PortCMIS/binding/atompub/XmlConverter.cs b/PortCMIS/binding/atompub/XmlConverter.cs
index 6d09e19..8bf276f 100644
--- a/PortCMIS/binding/atompub/XmlConverter.cs
+++ b/PortCMIS/binding/atompub/XmlConverter.cs
@@ -49,19 +49,19 @@
 

             writer.WriteStartElement(XmlConstants.TAG_REPOSITORY_INFO, ns);

 

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_REPINFO_ID, source.Id);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_REPINFO_NAME, source.Name);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_REPINFO_DESCRIPTION, source.Description);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_REPINFO_VENDOR, source.VendorName);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_REPINFO_PRODUCT, source.ProductName);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_REPINFO_PRODUCT_VERSION, source.ProductVersion);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_REPINFO_ROOT_FOLDER_ID, source.RootFolderId);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_REPINFO_CHANGE_LOG_TOKEN, source.LatestChangeLogToken);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_REPINFO_ID, source.Id);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_REPINFO_NAME, source.Name);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_REPINFO_DESCRIPTION, source.Description);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_REPINFO_VENDOR, source.VendorName);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_REPINFO_PRODUCT, source.ProductName);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_REPINFO_PRODUCT_VERSION, source.ProductVersion);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_REPINFO_ROOT_FOLDER_ID, source.RootFolderId);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_REPINFO_CHANGE_LOG_TOKEN, source.LatestChangeLogToken);

             WriteRepositoryCapabilities(writer, cmisVersion, source.Capabilities);

             WriteAclCapabilities(writer, cmisVersion, source.AclCapabilities);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_REPINFO_CMIS_VERSION_SUPPORTED, source.CmisVersionSupported);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_REPINFO_THIN_CLIENT_URI, source.ThinClientUri);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_REPINFO_CHANGES_INCOMPLETE, source.ChangesIncomplete);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_REPINFO_CMIS_VERSION_SUPPORTED, source.CmisVersionSupported);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_REPINFO_THIN_CLIENT_URI, source.ThinClientUri);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_REPINFO_CHANGES_INCOMPLETE, source.ChangesIncomplete);

             if (source.ChangesOnType != null)

             {

                 foreach (BaseTypeId baseType in source.ChangesOnType)

@@ -72,11 +72,11 @@
                                 + "The Item base type has been removed from the list.");

                         continue;

                     }

-                    XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_REPINFO_CHANGES_ON_TYPE, baseType);

+                    XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_REPINFO_CHANGES_ON_TYPE, baseType);

                 }

             }

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_REPINFO_PRINCIPAL_ID_ANONYMOUS, source.PrincipalIdAnonymous);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_REPINFO_PRINCIPAL_ID_ANYONE, source.PrincipalIdAnyone);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_REPINFO_PRINCIPAL_ID_ANONYMOUS, source.PrincipalIdAnonymous);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_REPINFO_PRINCIPAL_ID_ANYONE, source.PrincipalIdAnyone);

             if (cmisVersion != CmisVersion.Cmis_1_0 && source.ExtensionFeatures != null)

             {

                 foreach (ExtensionFeature feature in source.ExtensionFeatures)

@@ -96,39 +96,39 @@
                 return;

             }

 

-            writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_REPINFO_CAPABILITIES, XmlConstants.NAMESPACE_CMIS);

+            writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_REPINFO_CAPABILITIES, XmlConstants.NamespaceCmis);

 

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_CAP_ACL, source.AclCapability);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_CAP_ALL_VERSIONS_SEARCHABLE, source.IsAllVersionsSearchableSupported);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_CAP_CHANGES, source.ChangesCapability);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_CAP_CONTENT_STREAM_UPDATABILITY, source.ContentStreamUpdatesCapability);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_CAP_GET_DESCENDANTS, source.IsGetDescendantsSupported);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_CAP_GET_FOLDER_TREE, source.IsGetFolderTreeSupported);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_CAP_ACL, source.AclCapability);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_CAP_ALL_VERSIONS_SEARCHABLE, source.IsAllVersionsSearchableSupported);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_CAP_CHANGES, source.ChangesCapability);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_CAP_CONTENT_STREAM_UPDATABILITY, source.ContentStreamUpdatesCapability);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_CAP_GET_DESCENDANTS, source.IsGetDescendantsSupported);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_CAP_GET_FOLDER_TREE, source.IsGetFolderTreeSupported);

             if (cmisVersion != CmisVersion.Cmis_1_0)

             {

-                XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_CAP_ORDER_BY, source.OrderByCapability);

+                XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_CAP_ORDER_BY, source.OrderByCapability);

             }

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_CAP_MULTIFILING, source.IsMultifilingSupported);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_CAP_PWC_SEARCHABLE, source.IsPwcSearchableSupported);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_CAP_PWC_UPDATABLE, source.IsPwcUpdatableSupported);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_CAP_QUERY, source.QueryCapability);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_CAP_RENDITIONS, source.RenditionsCapability);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_CAP_UNFILING, source.IsUnfilingSupported);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_CAP_VERSION_SPECIFIC_FILING, source.IsVersionSpecificFilingSupported);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_CAP_JOIN, source.JoinCapability);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_CAP_MULTIFILING, source.IsMultifilingSupported);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_CAP_PWC_SEARCHABLE, source.IsPwcSearchableSupported);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_CAP_PWC_UPDATABLE, source.IsPwcUpdatableSupported);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_CAP_QUERY, source.QueryCapability);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_CAP_RENDITIONS, source.RenditionsCapability);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_CAP_UNFILING, source.IsUnfilingSupported);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_CAP_VERSION_SPECIFIC_FILING, source.IsVersionSpecificFilingSupported);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_CAP_JOIN, source.JoinCapability);

             if (cmisVersion != CmisVersion.Cmis_1_0)

             {

                 if (source.CreatablePropertyTypes != null)

                 {

                     ICreatablePropertyTypes creatablePropertyTypes = source.CreatablePropertyTypes;

 

-                    writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_CAP_CREATABLE_PROPERTY_TYPES, XmlConstants.NAMESPACE_CMIS);

+                    writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_CAP_CREATABLE_PROPERTY_TYPES, XmlConstants.NamespaceCmis);

 

                     if (creatablePropertyTypes.CanCreate != null)

                     {

                         foreach (PropertyType pt in creatablePropertyTypes.CanCreate)

                         {

-                            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_CAP_CREATABLE_PROPERTY_TYPES_CANCREATE,

+                            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_CAP_CREATABLE_PROPERTY_TYPES_CANCREATE,

                                     pt);

                         }

                     }

@@ -140,37 +140,37 @@
                 {

                     INewTypeSettableAttributes newTypeSettableAttributes = source.NewTypeSettableAttributes;

 

-                    writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES, XmlConstants.NAMESPACE_CMIS);

+                    writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES, XmlConstants.NamespaceCmis);

 

-                    XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_ID,

+                    XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_ID,

                             newTypeSettableAttributes.CanSetId);

-                    XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_LOCALNAME,

+                    XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_LOCALNAME,

                             newTypeSettableAttributes.CanSetLocalName);

-                    XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS,

+                    XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis,

                             XmlConstants.TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_LOCALNAMESPACE,

                             newTypeSettableAttributes.CanSetLocalNamespace);

-                    XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_DISPLAYNAME,

+                    XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_DISPLAYNAME,

                             newTypeSettableAttributes.CanSetDisplayName);

-                    XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_QUERYNAME,

+                    XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_QUERYNAME,

                             newTypeSettableAttributes.CanSetQueryName);

-                    XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_DESCRIPTION,

+                    XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_DESCRIPTION,

                             newTypeSettableAttributes.CanSetDescription);

-                    XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_CREATEABLE,

+                    XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_CREATEABLE,

                             newTypeSettableAttributes.CanSetCreatable);

-                    XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_FILEABLE,

+                    XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_FILEABLE,

                             newTypeSettableAttributes.CanSetFileable);

-                    XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_QUERYABLE,

+                    XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_QUERYABLE,

                             newTypeSettableAttributes.CanSetQueryable);

-                    XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS,

+                    XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis,

                             XmlConstants.TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_FULLTEXTINDEXED,

                             newTypeSettableAttributes.CanSetFulltextIndexed);

-                    XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS,

+                    XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis,

                             XmlConstants.TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_INCLUDEDINSUPERTYTPEQUERY,

                             newTypeSettableAttributes.CanSetIncludedInSupertypeQuery);

-                    XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS,

+                    XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis,

                             XmlConstants.TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_CONTROLABLEPOLICY,

                             newTypeSettableAttributes.CanSetControllablePolicy);

-                    XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS,

+                    XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis,

                             XmlConstants.TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_CONTROLABLEACL,

                             newTypeSettableAttributes.CanSetControllableAcl);

 

@@ -190,18 +190,18 @@
                 return;

             }

 

-            writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_REPINFO_ACL_CAPABILITIES, XmlConstants.NAMESPACE_CMIS);

+            writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_REPINFO_ACL_CAPABILITIES, XmlConstants.NamespaceCmis);

 

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_ACLCAP_SUPPORTED_PERMISSIONS, source.SupportedPermissions);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_ACLCAP_ACL_PROPAGATION, source.AclPropagation);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_ACLCAP_SUPPORTED_PERMISSIONS, source.SupportedPermissions);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_ACLCAP_ACL_PROPAGATION, source.AclPropagation);

             if (source.Permissions != null)

             {

                 foreach (IPermissionDefinition pd in source.Permissions)

                 {

-                    writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_ACLCAP_PERMISSIONS, XmlConstants.NAMESPACE_CMIS);

+                    writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_ACLCAP_PERMISSIONS, XmlConstants.NamespaceCmis);

 

-                    XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_ACLCAP_PERMISSION_PERMISSION, pd.Id);

-                    XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_ACLCAP_PERMISSION_DESCRIPTION, pd.Description);

+                    XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_ACLCAP_PERMISSION_PERMISSION, pd.Id);

+                    XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_ACLCAP_PERMISSION_DESCRIPTION, pd.Description);

 

                     WriteExtensions(writer, pd);

                     writer.WriteEndElement();

@@ -211,14 +211,14 @@
             {

                 foreach (IPermissionMapping pm in source.PermissionMapping.Values)

                 {

-                    writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_ACLCAP_PERMISSION_MAPPING, XmlConstants.NAMESPACE_CMIS);

+                    writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_ACLCAP_PERMISSION_MAPPING, XmlConstants.NamespaceCmis);

 

-                    XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_ACLCAP_MAPPING_KEY, pm.Key);

+                    XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_ACLCAP_MAPPING_KEY, pm.Key);

                     if (pm.Permissions != null)

                     {

                         foreach (String perm in pm.Permissions)

                         {

-                            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_ACLCAP_MAPPING_PERMISSION, perm);

+                            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_ACLCAP_MAPPING_PERMISSION, perm);

                         }

                     }

 

@@ -238,21 +238,21 @@
                 return;

             }

 

-            writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_REPINFO_EXTENDED_FEATURES, XmlConstants.NAMESPACE_CMIS);

+            writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_REPINFO_EXTENDED_FEATURES, XmlConstants.NamespaceCmis);

 

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_FEATURE_ID, source.Id);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_FEATURE_URL, source.Url);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_FEATURE_COMMON_NAME, source.CommonName);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_FEATURE_VERSION_LABEL, source.VersionLabel);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_FEATURE_DESCRIPTION, source.Description);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_FEATURE_ID, source.Id);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_FEATURE_URL, source.Url);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_FEATURE_COMMON_NAME, source.CommonName);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_FEATURE_VERSION_LABEL, source.VersionLabel);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_FEATURE_DESCRIPTION, source.Description);

             if (source.FeatureData != null)

             {

                 foreach (KeyValuePair<string, string> data in source.FeatureData)

                 {

-                    writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_FEATURE_DATA, XmlConstants.NAMESPACE_CMIS);

+                    writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_FEATURE_DATA, XmlConstants.NamespaceCmis);

 

-                    XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_FEATURE_DATA_KEY, data.Key);

-                    XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_FEATURE_DATA_VALUE, data.Value);

+                    XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_FEATURE_DATA_KEY, data.Key);

+                    XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_FEATURE_DATA_VALUE, data.Value);

 

                     writer.WriteEndElement();

                 }

@@ -286,7 +286,7 @@
             }

 

             writer.WriteStartElement(XmlConstants.TAG_TYPE, ns);

-            writer.WriteAttributeString("xmlns", XmlConstants.PREFIX_XSI, null, XmlConstants.NAMESPACE_XSI);

+            writer.WriteAttributeString("xmlns", XmlConstants.PrefixXsi, null, XmlConstants.NamespaceXsi);

             string prefix = writer.LookupPrefix(ns);

             if (prefix != null)

             {

@@ -295,57 +295,57 @@
 

             if (source.BaseTypeId == BaseTypeId.CmisDocument)

             {

-                writer.WriteAttributeString(XmlConstants.PREFIX_XSI, "type", XmlConstants.NAMESPACE_XSI, XmlConstants.PREFIX_CMIS + ":" + XmlConstants.ATTR_DOCUMENT_TYPE);

+                writer.WriteAttributeString(XmlConstants.PrefixXsi, "type", XmlConstants.NamespaceXsi, XmlConstants.PrefixCmis + ":" + XmlConstants.ATTR_DOCUMENT_TYPE);

             }

             else if (source.BaseTypeId == BaseTypeId.CmisFolder)

             {

-                writer.WriteAttributeString(XmlConstants.PREFIX_XSI, "type", XmlConstants.NAMESPACE_XSI, XmlConstants.PREFIX_CMIS + ":" + XmlConstants.ATTR_FOLDER_TYPE);

+                writer.WriteAttributeString(XmlConstants.PrefixXsi, "type", XmlConstants.NamespaceXsi, XmlConstants.PrefixCmis + ":" + XmlConstants.ATTR_FOLDER_TYPE);

             }

             else if (source.BaseTypeId == BaseTypeId.CmisRelationship)

             {

-                writer.WriteAttributeString(XmlConstants.PREFIX_XSI, "type", XmlConstants.NAMESPACE_XSI, XmlConstants.PREFIX_CMIS + ":" + XmlConstants.ATTR_RELATIONSHIP_TYPE);

+                writer.WriteAttributeString(XmlConstants.PrefixXsi, "type", XmlConstants.NamespaceXsi, XmlConstants.PrefixCmis + ":" + XmlConstants.ATTR_RELATIONSHIP_TYPE);

             }

             else if (source.BaseTypeId == BaseTypeId.CmisPolicy)

             {

-                writer.WriteAttributeString(XmlConstants.PREFIX_XSI, "type", XmlConstants.NAMESPACE_XSI, XmlConstants.PREFIX_CMIS + ":" + XmlConstants.ATTR_POLICY_TYPE);

+                writer.WriteAttributeString(XmlConstants.PrefixXsi, "type", XmlConstants.NamespaceXsi, XmlConstants.PrefixCmis + ":" + XmlConstants.ATTR_POLICY_TYPE);

             }

             else if (source.BaseTypeId == BaseTypeId.CmisItem)

             {

-                writer.WriteAttributeString(XmlConstants.PREFIX_XSI, "type", XmlConstants.NAMESPACE_XSI, XmlConstants.PREFIX_CMIS + ":" + XmlConstants.ATTR_ITEM_TYPE);

+                writer.WriteAttributeString(XmlConstants.PrefixXsi, "type", XmlConstants.NamespaceXsi, XmlConstants.PrefixCmis + ":" + XmlConstants.ATTR_ITEM_TYPE);

             }

             else if (source.BaseTypeId == BaseTypeId.CmisSecondary)

             {

-                writer.WriteAttributeString(XmlConstants.PREFIX_XSI, "type", XmlConstants.NAMESPACE_XSI, XmlConstants.PREFIX_CMIS + ":" + XmlConstants.ATTR_SECONDARY_TYPE);

+                writer.WriteAttributeString(XmlConstants.PrefixXsi, "type", XmlConstants.NamespaceXsi, XmlConstants.PrefixCmis + ":" + XmlConstants.ATTR_SECONDARY_TYPE);

             }

             else

             {

                 throw new CmisRuntimeException("Type definition has no base type id!");

             }

 

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_TYPE_ID, source.Id);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_TYPE_LOCALNAME, source.LocalName);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_TYPE_LOCALNAMESPACE, source.LocalNamespace);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_TYPE_DISPLAYNAME, source.DisplayName);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_TYPE_QUERYNAME, source.QueryName);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_TYPE_DESCRIPTION, source.Description);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_TYPE_BASE_ID, source.BaseTypeId);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_TYPE_PARENT_ID, source.ParentTypeId);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_TYPE_CREATABLE, source.IsCreatable);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_TYPE_FILEABLE, source.IsFileable);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_TYPE_QUERYABLE, source.IsQueryable);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_TYPE_FULLTEXT_INDEXED, source.IsFulltextIndexed);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_TYPE_INCLUDE_IN_SUPERTYPE_QUERY, source.IsIncludedInSupertypeQuery);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_TYPE_CONTROLABLE_POLICY, source.IsControllablePolicy);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_TYPE_CONTROLABLE_ACL, source.IsControllableAcl);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_TYPE_ID, source.Id);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_TYPE_LOCALNAME, source.LocalName);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_TYPE_LOCALNAMESPACE, source.LocalNamespace);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_TYPE_DISPLAYNAME, source.DisplayName);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_TYPE_QUERYNAME, source.QueryName);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_TYPE_DESCRIPTION, source.Description);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_TYPE_BASE_ID, source.BaseTypeId);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_TYPE_PARENT_ID, source.ParentTypeId);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_TYPE_CREATABLE, source.IsCreatable);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_TYPE_FILEABLE, source.IsFileable);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_TYPE_QUERYABLE, source.IsQueryable);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_TYPE_FULLTEXT_INDEXED, source.IsFulltextIndexed);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_TYPE_INCLUDE_IN_SUPERTYPE_QUERY, source.IsIncludedInSupertypeQuery);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_TYPE_CONTROLABLE_POLICY, source.IsControllablePolicy);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_TYPE_CONTROLABLE_ACL, source.IsControllableAcl);

             if (cmisVersion != CmisVersion.Cmis_1_0 && source.TypeMutability != null)

             {

                 ITypeMutability tm = source.TypeMutability;

 

-                writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_TYPE_TYPE_MUTABILITY, XmlConstants.NAMESPACE_CMIS);

+                writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_TYPE_TYPE_MUTABILITY, XmlConstants.NamespaceCmis);

 

-                XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_TYPE_TYPE_MUTABILITY_CREATE, tm.CanCreate);

-                XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_TYPE_TYPE_MUTABILITY_UPDATE, tm.CanUpdate);

-                XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_TYPE_TYPE_MUTABILITY_DELETE, tm.CanDelete);

+                XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_TYPE_TYPE_MUTABILITY_CREATE, tm.CanCreate);

+                XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_TYPE_TYPE_MUTABILITY_UPDATE, tm.CanUpdate);

+                XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_TYPE_TYPE_MUTABILITY_DELETE, tm.CanDelete);

 

                 WriteExtensions(writer, tm);

                 writer.WriteEndElement();

@@ -361,8 +361,8 @@
             if (source is DocumentTypeDefinition)

             {

                 DocumentTypeDefinition docDef = (DocumentTypeDefinition)source;

-                XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_TYPE_VERSIONABLE, docDef.IsVersionable);

-                XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_TYPE_CONTENTSTREAM_ALLOWED, docDef.ContentStreamAllowed);

+                XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_TYPE_VERSIONABLE, docDef.IsVersionable);

+                XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_TYPE_CONTENTSTREAM_ALLOWED, docDef.ContentStreamAllowed);

             }

 

             if (source is RelationshipTypeDefinition)

@@ -374,7 +374,7 @@
                     {

                         if (id != null)

                         {

-                            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_TYPE_ALLOWED_SOURCE_TYPES, id);

+                            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_TYPE_ALLOWED_SOURCE_TYPES, id);

                         }

                     }

                 }

@@ -384,7 +384,7 @@
                     {

                         if (id != null)

                         {

-                            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_TYPE_ALLOWED_TARGET_TYPES, id);

+                            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_TYPE_ALLOWED_TARGET_TYPES, id);

                         }

                     }

                 }

@@ -409,47 +409,47 @@
             switch (source.PropertyType)

             {

                 case PropertyType.String:

-                    writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_TYPE_PROP_DEF_STRING, XmlConstants.NAMESPACE_CMIS);

+                    writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_TYPE_PROP_DEF_STRING, XmlConstants.NamespaceCmis);

                     break;

                 case PropertyType.Id:

-                    writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_TYPE_PROP_DEF_ID, XmlConstants.NAMESPACE_CMIS);

+                    writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_TYPE_PROP_DEF_ID, XmlConstants.NamespaceCmis);

                     break;

                 case PropertyType.Integer:

-                    writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_TYPE_PROP_DEF_INTEGER, XmlConstants.NAMESPACE_CMIS);

+                    writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_TYPE_PROP_DEF_INTEGER, XmlConstants.NamespaceCmis);

                     break;

                 case PropertyType.Boolean:

-                    writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_TYPE_PROP_DEF_BOOLEAN, XmlConstants.NAMESPACE_CMIS);

+                    writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_TYPE_PROP_DEF_BOOLEAN, XmlConstants.NamespaceCmis);

                     break;

                 case PropertyType.DateTime:

-                    writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_TYPE_PROP_DEF_DATETIME, XmlConstants.NAMESPACE_CMIS);

+                    writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_TYPE_PROP_DEF_DATETIME, XmlConstants.NamespaceCmis);

                     break;

                 case PropertyType.Decimal:

-                    writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_TYPE_PROP_DEF_DECIMAL, XmlConstants.NAMESPACE_CMIS);

+                    writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_TYPE_PROP_DEF_DECIMAL, XmlConstants.NamespaceCmis);

                     break;

                 case PropertyType.Html:

-                    writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_TYPE_PROP_DEF_HTML, XmlConstants.NAMESPACE_CMIS);

+                    writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_TYPE_PROP_DEF_HTML, XmlConstants.NamespaceCmis);

                     break;

                 case PropertyType.Uri:

-                    writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_TYPE_PROP_DEF_URI, XmlConstants.NAMESPACE_CMIS);

+                    writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_TYPE_PROP_DEF_URI, XmlConstants.NamespaceCmis);

                     break;

                 default:

                     throw new CmisRuntimeException("Property definition has no property type!");

             }

 

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_TYPE_ID, source.Id);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_TYPE_LOCALNAME, source.LocalName);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_TYPE_LOCALNAMESPACE, source.LocalNamespace);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_TYPE_DISPLAYNAME, source.DisplayName);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_TYPE_QUERYNAME, source.QueryName);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_TYPE_DESCRIPTION, source.Description);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_TYPE_PROPERTY_TYPE, source.PropertyType);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_TYPE_CARDINALITY, source.Cardinality);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_TYPE_UPDATABILITY, source.Updatability);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_TYPE_INHERITED, source.IsInherited);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_TYPE_REQUIRED, source.IsRequired);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_TYPE_QUERYABLE, source.IsQueryable);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_TYPE_ORDERABLE, source.IsOrderable);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_TYPE_OPENCHOICE, source.IsOpenChoice);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_TYPE_ID, source.Id);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_TYPE_LOCALNAME, source.LocalName);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_TYPE_LOCALNAMESPACE, source.LocalNamespace);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_TYPE_DISPLAYNAME, source.DisplayName);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_TYPE_QUERYNAME, source.QueryName);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_TYPE_DESCRIPTION, source.Description);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_TYPE_PROPERTY_TYPE, source.PropertyType);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_TYPE_CARDINALITY, source.Cardinality);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_TYPE_UPDATABILITY, source.Updatability);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_TYPE_INHERITED, source.IsInherited);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_TYPE_REQUIRED, source.IsRequired);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_TYPE_QUERYABLE, source.IsQueryable);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_TYPE_ORDERABLE, source.IsOrderable);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_TYPE_OPENCHOICE, source.IsOpenChoice);

 

             if (source is IPropertyStringDefinition)

             {

@@ -462,7 +462,7 @@
                     WriteProperty(writer, prop, true);

                 }

 

-                XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_TYPE_MAX_LENGTH, def.MaxLength);

+                XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_TYPE_MAX_LENGTH, def.MaxLength);

 

                 if (def.Choices != null)

                 {

@@ -508,8 +508,8 @@
                     WriteProperty(writer, prop, true);

                 }

 

-                XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_TYPE_MAX_VALUE, def.MaxValue);

-                XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_TYPE_MIN_VALUE, def.MinValue);

+                XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_TYPE_MAX_VALUE, def.MaxValue);

+                XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_TYPE_MIN_VALUE, def.MinValue);

 

                 if (def.Choices != null)

                 {

@@ -555,7 +555,7 @@
                     WriteProperty(writer, prop, true);

                 }

 

-                XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_TYPE_RESOLUTION, def.DateTimeResolution);

+                XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_TYPE_RESOLUTION, def.DateTimeResolution);

 

                 if (def.Choices != null)

                 {

@@ -579,9 +579,9 @@
                     WriteProperty(writer, prop, true);

                 }

 

-                XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_TYPE_MAX_VALUE, def.MaxValue);

-                XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_TYPE_MIN_VALUE, def.MinValue);

-                XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_TYPE_PRECISION, def.Precision);

+                XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_TYPE_MAX_VALUE, def.MaxValue);

+                XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_TYPE_MIN_VALUE, def.MinValue);

+                XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_TYPE_PRECISION, def.Precision);

 

                 if (def.Choices != null)

                 {

@@ -650,7 +650,7 @@
                 return;

             }

 

-            writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_PROPERTY_TYPE_CHOICE, XmlConstants.NAMESPACE_CMIS);

+            writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_PROPERTY_TYPE_CHOICE, XmlConstants.NamespaceCmis);

 

             if (source.DisplayName != null)

             {

@@ -667,31 +667,31 @@
                     case PropertyType.Uri:

                         foreach (string value in (IList<string>)source.Value)

                         {

-                            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_TYPE_CHOICE_VALUE, value);

+                            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_TYPE_CHOICE_VALUE, value);

                         }

                         break;

                     case PropertyType.Integer:

                         foreach (BigInteger value in (IList<BigInteger>)source.Value)

                         {

-                            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_TYPE_CHOICE_VALUE, value);

+                            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_TYPE_CHOICE_VALUE, value);

                         }

                         break;

                     case PropertyType.Boolean:

                         foreach (bool? value in (IList<bool?>)source.Value)

                         {

-                            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_TYPE_CHOICE_VALUE, value);

+                            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_TYPE_CHOICE_VALUE, value);

                         }

                         break;

                     case PropertyType.DateTime:

                         foreach (DateTime value in (IList<DateTime>)source.Value)

                         {

-                            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_TYPE_CHOICE_VALUE, value);

+                            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_TYPE_CHOICE_VALUE, value);

                         }

                         break;

                     case PropertyType.Decimal:

                         foreach (decimal? value in (IList<decimal?>)source.Value)

                         {

-                            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_TYPE_CHOICE_VALUE, value);

+                            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_TYPE_CHOICE_VALUE, value);

                         }

                         break;

                     default:

@@ -739,8 +739,8 @@
 

             if (root)

             {

-                writer.WriteStartElement(XmlConstants.PREFIX_CMIS, name, XmlConstants.NAMESPACE_CMIS);

-                writer.WriteAttributeString("xmlns", XmlConstants.PREFIX_CMIS, null, XmlConstants.NAMESPACE_CMIS);

+                writer.WriteStartElement(XmlConstants.PrefixCmis, name, XmlConstants.NamespaceCmis);

+                writer.WriteAttributeString("xmlns", XmlConstants.PrefixCmis, null, XmlConstants.NamespaceCmis);

             }

             else

             {

@@ -751,7 +751,7 @@
             {

                 IProperties properties = source.Properties;

 

-                writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_OBJECT_PROPERTIES, XmlConstants.NAMESPACE_CMIS);

+                writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_OBJECT_PROPERTIES, XmlConstants.NamespaceCmis);

 

                 if (properties.PropertyList != null)

                 {

@@ -774,7 +774,7 @@
                 {

                     if (rel != null)

                     {

-                        WriteObject(writer, cmisVersion, false, XmlConstants.TAG_OBJECT_RELATIONSHIP, XmlConstants.NAMESPACE_CMIS, rel);

+                        WriteObject(writer, cmisVersion, false, XmlConstants.TAG_OBJECT_RELATIONSHIP, XmlConstants.NamespaceCmis, rel);

                     }

                 }

             }

@@ -782,10 +782,10 @@
             {

                 IChangeEventInfo info = source.ChangeEventInfo;

 

-                writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_OBJECT_CHANGE_EVENT_INFO, XmlConstants.NAMESPACE_CMIS);

+                writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_OBJECT_CHANGE_EVENT_INFO, XmlConstants.NamespaceCmis);

 

-                XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_CHANGE_EVENT_TYPE, info.ChangeType);

-                XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_CHANGE_EVENT_TIME, info.ChangeTime);

+                XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_CHANGE_EVENT_TYPE, info.ChangeType);

+                XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_CHANGE_EVENT_TIME, info.ChangeTime);

 

                 WriteExtensions(writer, info);

                 writer.WriteEndElement();

@@ -794,12 +794,12 @@
             {

                 WriteAcl(writer, cmisVersion, false, source.Acl);

             }

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_OBJECT_EXACT_ACL, source.IsExactAcl);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_OBJECT_EXACT_ACL, source.IsExactAcl);

             if (source.PolicyIds != null)

             {

                 IPolicyIdList pids = source.PolicyIds;

 

-                writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_OBJECT_POLICY_IDS, XmlConstants.NAMESPACE_CMIS);

+                writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_OBJECT_POLICY_IDS, XmlConstants.NamespaceCmis);

 

                 if (pids.PolicyIds != null)

                 {

@@ -807,7 +807,7 @@
                     {

                         if (id != null)

                         {

-                            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_POLICY_ID, id);

+                            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_POLICY_ID, id);

                         }

                     }

                 }

@@ -821,16 +821,16 @@
                 {

                     if (rend != null)

                     {

-                        writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_OBJECT_RENDITION, XmlConstants.NAMESPACE_CMIS);

+                        writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_OBJECT_RENDITION, XmlConstants.NamespaceCmis);

 

-                        XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_RENDITION_STREAM_ID, rend.StreamId);

-                        XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_RENDITION_MIMETYPE, rend.MimeType);

-                        XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_RENDITION_LENGTH, rend.Length);

-                        XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_RENDITION_KIND, rend.Kind);

-                        XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_RENDITION_TITLE, rend.Title);

-                        XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_RENDITION_HEIGHT, rend.Height);

-                        XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_RENDITION_WIDTH, rend.Width);

-                        XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_RENDITION_DOCUMENT_ID, rend.RenditionDocumentId);

+                        XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_RENDITION_STREAM_ID, rend.StreamId);

+                        XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_RENDITION_MIMETYPE, rend.MimeType);

+                        XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_RENDITION_LENGTH, rend.Length);

+                        XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_RENDITION_KIND, rend.Kind);

+                        XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_RENDITION_TITLE, rend.Title);

+                        XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_RENDITION_HEIGHT, rend.Height);

+                        XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_RENDITION_WIDTH, rend.Width);

+                        XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_RENDITION_DOCUMENT_ID, rend.RenditionDocumentId);

 

                         WriteExtensions(writer, rend);

                         writer.WriteEndElement();

@@ -851,41 +851,41 @@
 

             if (isDefaultValue)

             {

-                writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_PROPERTY_TYPE_DEAULT_VALUE, XmlConstants.NAMESPACE_CMIS);

+                writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_PROPERTY_TYPE_DEAULT_VALUE, XmlConstants.NamespaceCmis);

             }

             else

             {

                 if (source.PropertyType == PropertyType.String)

                 {

-                    writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_PROP_STRING, XmlConstants.NAMESPACE_CMIS);

+                    writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_PROP_STRING, XmlConstants.NamespaceCmis);

                 }

                 else if (source.PropertyType == PropertyType.Id)

                 {

-                    writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_PROP_ID, XmlConstants.NAMESPACE_CMIS);

+                    writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_PROP_ID, XmlConstants.NamespaceCmis);

                 }

                 else if (source.PropertyType == PropertyType.Integer)

                 {

-                    writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_PROP_INTEGER, XmlConstants.NAMESPACE_CMIS);

+                    writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_PROP_INTEGER, XmlConstants.NamespaceCmis);

                 }

                 else if (source.PropertyType == PropertyType.Boolean)

                 {

-                    writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_PROP_BOOLEAN, XmlConstants.NAMESPACE_CMIS);

+                    writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_PROP_BOOLEAN, XmlConstants.NamespaceCmis);

                 }

                 else if (source.PropertyType == PropertyType.DateTime)

                 {

-                    writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_PROP_DATETIME, XmlConstants.NAMESPACE_CMIS);

+                    writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_PROP_DATETIME, XmlConstants.NamespaceCmis);

                 }

                 else if (source.PropertyType == PropertyType.Decimal)

                 {

-                    writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_PROP_DECIMAL, XmlConstants.NAMESPACE_CMIS);

+                    writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_PROP_DECIMAL, XmlConstants.NamespaceCmis);

                 }

                 else if (source.PropertyType == PropertyType.Html)

                 {

-                    writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_PROP_HTML, XmlConstants.NAMESPACE_CMIS);

+                    writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_PROP_HTML, XmlConstants.NamespaceCmis);

                 }

                 else if (source.PropertyType == PropertyType.Uri)

                 {

-                    writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_PROP_URI, XmlConstants.NAMESPACE_CMIS);

+                    writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_PROP_URI, XmlConstants.NamespaceCmis);

                 }

                 else

                 {

@@ -921,31 +921,31 @@
                     case PropertyType.Uri:

                         foreach (string value in source.Values.Cast<string>())

                         {

-                            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_VALUE, value);

+                            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_VALUE, value);

                         }

                         break;

                     case PropertyType.Integer:

                         foreach (BigInteger value in source.Values.Cast<BigInteger>())

                         {

-                            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_VALUE, value);

+                            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_VALUE, value);

                         }

                         break;

                     case PropertyType.Boolean:

                         foreach (bool value in source.Values.Cast<bool>())

                         {

-                            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_VALUE, value);

+                            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_VALUE, value);

                         }

                         break;

                     case PropertyType.DateTime:

                         foreach (DateTime value in source.Values.Cast<DateTime>())

                         {

-                            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_VALUE, value);

+                            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_VALUE, value);

                         }

                         break;

                     case PropertyType.Decimal:

                         foreach (decimal value in source.Values.Cast<decimal>())

                         {

-                            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_PROPERTY_VALUE, value);

+                            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_PROPERTY_VALUE, value);

                         }

                         break;

                 }

@@ -964,12 +964,12 @@
 

             if (root)

             {

-                writer.WriteStartElement(XmlConstants.PREFIX_CMIS, "allowableActions", XmlConstants.NAMESPACE_CMIS);

-                writer.WriteAttributeString("xmlns", XmlConstants.PREFIX_CMIS, null, XmlConstants.NAMESPACE_CMIS);

+                writer.WriteStartElement(XmlConstants.PrefixCmis, "allowableActions", XmlConstants.NamespaceCmis);

+                writer.WriteAttributeString("xmlns", XmlConstants.PrefixCmis, null, XmlConstants.NamespaceCmis);

             }

             else

             {

-                writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_OBJECT_ALLOWABLE_ACTIONS, XmlConstants.NAMESPACE_CMIS);

+                writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_OBJECT_ALLOWABLE_ACTIONS, XmlConstants.NamespaceCmis);

             }

 

             if (source.Actions != null)

@@ -986,7 +986,7 @@
                                     + "The canCreateItem action has been removed from the Allowable Actions.");

                             continue;

                         }

-                        XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, action.GetCmisValue(), true);

+                        XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, action.GetCmisValue(), true);

                     }

                 }

             }

@@ -1004,12 +1004,12 @@
 

             if (root)

             {

-                writer.WriteStartElement(XmlConstants.PREFIX_CMIS, "acl", XmlConstants.NAMESPACE_CMIS);

-                writer.WriteAttributeString("xmlns", XmlConstants.PREFIX_CMIS, null, XmlConstants.NAMESPACE_CMIS);

+                writer.WriteStartElement(XmlConstants.PrefixCmis, "acl", XmlConstants.NamespaceCmis);

+                writer.WriteAttributeString("xmlns", XmlConstants.PrefixCmis, null, XmlConstants.NamespaceCmis);

             }

             else

             {

-                writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_OBJECT_ACL, XmlConstants.NAMESPACE_CMIS);

+                writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_OBJECT_ACL, XmlConstants.NamespaceCmis);

             }

 

             if (source.Aces != null)

@@ -1018,15 +1018,15 @@
                 {

                     if (ace != null)

                     {

-                        writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_ACL_PERMISSISONS, XmlConstants.NAMESPACE_CMIS);

+                        writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_ACL_PERMISSISONS, XmlConstants.NamespaceCmis);

 

                         if (ace.Principal != null)

                         {

                             IPrincipal principal = ace.Principal;

 

-                            writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_ACE_PRINCIPAL, XmlConstants.NAMESPACE_CMIS);

+                            writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_ACE_PRINCIPAL, XmlConstants.NamespaceCmis);

 

-                            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_ACE_PRINCIPAL_ID, principal.Id);

+                            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_ACE_PRINCIPAL_ID, principal.Id);

 

                             WriteExtensions(writer, principal);

                             writer.WriteEndElement();

@@ -1035,10 +1035,10 @@
                         {

                             foreach (String perm in ace.Permissions)

                             {

-                                XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_ACE_PERMISSIONS, perm);

+                                XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_ACE_PERMISSIONS, perm);

                             }

                         }

-                        XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_ACE_IS_DIRECT, ace.IsDirect);

+                        XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_ACE_IS_DIRECT, ace.IsDirect);

 

                         WriteExtensions(writer, ace);

                         writer.WriteEndElement();

@@ -1061,16 +1061,16 @@
                 return;

             }

 

-            writer.WriteStartElement(XmlConstants.TAG_QUERY, XmlConstants.NAMESPACE_CMIS);

-            writer.WriteAttributeString("xmlns", XmlConstants.PREFIX_CMIS, null, XmlConstants.NAMESPACE_CMIS);

+            writer.WriteStartElement(XmlConstants.TAG_QUERY, XmlConstants.NamespaceCmis);

+            writer.WriteAttributeString("xmlns", XmlConstants.PrefixCmis, null, XmlConstants.NamespaceCmis);

 

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_QUERY_STATEMENT, source.Statement);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_QUERY_SEARCHALLVERSIONS, source.SearchAllVersions);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_QUERY_INCLUDEALLOWABLEACTIONS, source.IncludeAllowableActions);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_QUERY_INCLUDERELATIONSHIPS, source.IncludeRelationships);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_QUERY_RENDITIONFILTER, source.RenditionFilter);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_QUERY_MAXITEMS, source.MaxItems);

-            XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_QUERY_SKIPCOUNT, source.SkipCount);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_QUERY_STATEMENT, source.Statement);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_QUERY_SEARCHALLVERSIONS, source.SearchAllVersions);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_QUERY_INCLUDEALLOWABLEACTIONS, source.IncludeAllowableActions);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_QUERY_INCLUDERELATIONSHIPS, source.IncludeRelationships);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_QUERY_RENDITIONFILTER, source.RenditionFilter);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_QUERY_MAXITEMS, source.MaxItems);

+            XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_QUERY_SKIPCOUNT, source.SkipCount);

 

             WriteExtensions(writer, source);

             writer.WriteEndElement();

@@ -1096,10 +1096,10 @@
                     continue;

                 }

 

-                writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_BULK_UPDATE_ID_AND_TOKEN, XmlConstants.NAMESPACE_CMIS);

+                writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_BULK_UPDATE_ID_AND_TOKEN, XmlConstants.NamespaceCmis);

 

-                XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_IDANDTOKEN_ID, idAndToken.Id);

-                XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_IDANDTOKEN_CHANGETOKEN, idAndToken.ChangeToken);

+                XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_IDANDTOKEN_ID, idAndToken.Id);

+                XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_IDANDTOKEN_CHANGETOKEN, idAndToken.ChangeToken);

 

                 WriteExtensions(writer, idAndToken);

                 writer.WriteEndElement();

@@ -1108,7 +1108,7 @@
             if (bulkUpdate.Properties != null)

             {

                 IProperties properties = bulkUpdate.Properties;

-                writer.WriteStartElement(XmlConstants.PREFIX_CMIS, XmlConstants.TAG_BULK_UPDATE_PROPERTIES, XmlConstants.NAMESPACE_CMIS);

+                writer.WriteStartElement(XmlConstants.PrefixCmis, XmlConstants.TAG_BULK_UPDATE_PROPERTIES, XmlConstants.NamespaceCmis);

 

                 if (properties.PropertyList != null)

                 {

@@ -1126,7 +1126,7 @@
             {

                 foreach (string id in bulkUpdate.AddSecondaryTypeIds)

                 {

-                    XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_BULK_UPDATE_ADD_SECONDARY_TYPES, id);

+                    XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_BULK_UPDATE_ADD_SECONDARY_TYPES, id);

                 }

             }

 

@@ -1134,7 +1134,7 @@
             {

                 foreach (string id in bulkUpdate.RemoveSecondaryTypeIds)

                 {

-                    XmlUtils.Write(writer, XmlConstants.PREFIX_CMIS, XmlConstants.NAMESPACE_CMIS, XmlConstants.TAG_BULK_UPDATE_REMOVE_SECONDARY_TYPES, id);

+                    XmlUtils.Write(writer, XmlConstants.PrefixCmis, XmlConstants.NamespaceCmis, XmlConstants.TAG_BULK_UPDATE_REMOVE_SECONDARY_TYPES, id);

                 }

             }

 

@@ -1849,7 +1849,7 @@
             {

                 AbstractTypeDefinition result = null;

 

-                string typeAttr = parser.GetAttribute("type", XmlConstants.NAMESPACE_XSI);

+                string typeAttr = parser.GetAttribute("type", XmlConstants.NamespaceXsi);

                 if (typeAttr != null)

                 {

                     if (typeAttr.EndsWith(XmlConstants.ATTR_DOCUMENT_TYPE))

diff --git a/PortCMIS/binding/atompub/XmlWalker.cs b/PortCMIS/binding/atompub/XmlWalker.cs
index 762bf39..9b72975 100644
--- a/PortCMIS/binding/atompub/XmlWalker.cs
+++ b/PortCMIS/binding/atompub/XmlWalker.cs
@@ -81,12 +81,12 @@
 

         protected bool IsCmisNamespace(string ns)

         {

-            return XmlConstants.NAMESPACE_CMIS == ns;

+            return XmlConstants.NamespaceCmis == ns;

         }

 

         protected bool IsAtomNamespace(string ns)

         {

-            return XmlConstants.NAMESPACE_ATOM == ns;

+            return XmlConstants.NamespaceAtom == ns;

         }

 

         protected bool IsTag(string name, string tag)

diff --git a/PortCMIS/binding/browser/BrowserBinding.cs b/PortCMIS/binding/browser/BrowserBinding.cs
index 0a6df3d..dc196fc 100644
--- a/PortCMIS/binding/browser/BrowserBinding.cs
+++ b/PortCMIS/binding/browser/BrowserBinding.cs
@@ -46,7 +46,14 @@
     /// </summary>

     public class RepositoryInfoBrowserBinding : RepositoryInfo

     {

+        /// <value>

+        /// The base repository URL for non-object related calls.

+        /// </value>

         public string RepositoryUrl { get; set; }

+

+        /// <value>

+        /// The base root URL for object related calls.

+        /// </value>

         public string RootUrl { get; set; }

     }

 

diff --git a/PortCMIS/binding/browser/json/Json.cs b/PortCMIS/binding/browser/json/Json.cs
index 136346f..e5b10c6 100644
--- a/PortCMIS/binding/browser/json/Json.cs
+++ b/PortCMIS/binding/browser/json/Json.cs
@@ -878,8 +878,8 @@
 

         private static int ZzUnpackAttribute(string packed, int offset, int[] result)

         {

-            int i = 0; /* index in packed string */

-            int j = offset; /* index in unpacked array */

+            int i = 0; // index in packed string

+            int j = offset; // index in unpacked array

             int l = packed.Length;

             while (i < l)

             {

@@ -893,13 +893,13 @@
             return j;

         }

 

-        /** the input device */

+        // the input device

         private TextReader zzReader;

 

-        /** the current state of the DFA */

+        // the current state of the DFA

         private int zzState;

 

-        /** the current lexical state */

+        // the current lexical state

         private int zzLexicalState = YyInitial;

 

         /// <summary>

@@ -908,13 +908,13 @@
         /// </summary>

         private char[] zzBuffer = new char[ZzBufferSize];

 

-        /** the textposition at the last accepting state */

+        // the textposition at the last accepting state

         private int zzMarkedPos;

 

-        /** the current text position in the buffer */

+        // the current text position in the buffer

         private int zzCurrentPos;

 

-        /** startRead marks the beginning of the yytext() string in the buffer */

+        // startRead marks the beginning of the yytext() string in the buffer

         private int zzStartRead;

 

         /// <summary>

@@ -922,13 +922,13 @@
         /// </summary>

         private int zzEndRead;

 

-        /** the number of characters up to the start of the matched text */

+        // the number of characters up to the start of the matched tex

         private int yychar;

 

-        /** zzAtEOF == true <=> the scanner is at the EOF */

+        // zzAtEOF == true &lt;=&gth; the scanner is at the EOF

         private bool zzAtEOF;

 

-        /* user code: */

+        // user code:

         private StringBuilder sb = new StringBuilder();

 

         public Yylex(TextReader input)

@@ -941,8 +941,8 @@
         private static char[] ZzUnpackCMap(string packed)

         {

             char[] map = new char[0x10000];

-            int i = 0; /* index in packed string */

-            int j = 0; /* index in unpacked array */

+            int i = 0; // index in packed string

+            int j = 0; // index in unpacked array

             while (i < 90)

             {

                 int count = packed[i++];

@@ -958,12 +958,12 @@
         private bool ZzRefill()

         {

 

-            /* first: make room (if you can) */

+            // first: make room (if you can)

             if (zzStartRead > 0)

             {

                 Array.Copy(zzBuffer, zzStartRead, zzBuffer, 0, zzEndRead - zzStartRead);

 

-                /* translate stored positions */

+                // translate stored positions

                 zzEndRead -= zzStartRead;

                 zzCurrentPos -= zzStartRead;

                 zzMarkedPos -= zzStartRead;

diff --git a/PortCMIS/client/ClientCaches.cs b/PortCMIS/client/ClientCaches.cs
index 472cff4..fdfdc9e 100644
--- a/PortCMIS/client/ClientCaches.cs
+++ b/PortCMIS/client/ClientCaches.cs
@@ -135,6 +135,9 @@
         public int CacheSize { get { return 0; } }

     }

 

+    /// <summary>

+    /// Default object cache implementation.

+    /// </summary>

     public class CmisObjectCache : ICache

     {

         private int cacheSize;

@@ -147,6 +150,9 @@
 

         private object cacheLock = new object();

 

+        /// <summary>

+        /// Constructor.

+        /// </summary>

         public CmisObjectCache() { }

 

         /// <inheritdoc/> 

diff --git a/PortCMIS/client/ClientImpl.cs b/PortCMIS/client/ClientImpl.cs
index 6f3c49b..55e0fe5 100644
--- a/PortCMIS/client/ClientImpl.cs
+++ b/PortCMIS/client/ClientImpl.cs
@@ -271,6 +271,9 @@
             }

         }

 

+        /// <summary>

+        /// Connects to the repository and fetches the repository info.

+        /// </summary>

         public void Connect()

         {

             lock (sessionLock)

@@ -351,6 +354,7 @@
             }

         }

 

+        /// <inheritdoc/>

         public void Clear()

         {

             lock (sessionLock)

diff --git a/PortCMIS/client/ClientIntf.cs b/PortCMIS/client/ClientIntf.cs
index 4873152..d76ba63 100644
--- a/PortCMIS/client/ClientIntf.cs
+++ b/PortCMIS/client/ClientIntf.cs
@@ -886,12 +886,33 @@
     public interface IObjectType : ITypeDefinition

     {

         /// <value>

-        /// The base type.

+        /// Gets the base type.

         /// </value>

         bool IsBaseType { get; }

+

+        /// <summary>

+        /// Returns the base type definition.

+        /// </summary>

+        /// <returns>the base type definition or <c>null</c> if it is a base type</returns>

         IObjectType GetBaseType();

+

+        /// <summary>

+        /// Returns the parent type definition.

+        /// </summary>

+        /// <returns>the parent type definition or <c>null</c> if it is a base type</returns>

         IObjectType GetParentType();

+

+        /// <summary>

+        /// Gets the list of types directly derived from this type.

+        /// </summary>

+        /// <returns>list of types which are directly derived from this type</returns>

         IItemEnumerable<IObjectType> GetChildren();

+

+        /// <summary>

+        /// Gets the list of all types somehow derived from this type.

+        /// </summary>

+        /// <param name="depth">the tree depth, must be greater than 0 or -1 for infinite depth</param>

+        /// <returns> a list of trees of types which are derived from this type (direct and via their parents)</returns>

         IList<ITree<IObjectType>> GetDescendants(int depth);

     }

 

@@ -901,12 +922,12 @@
     public interface IDocumentType : IObjectType

     {

         /// <value>

-        /// The versionable flag.

+        /// Gets the versionable flag.

         /// </value>

         bool? IsVersionable { get; }

 

         /// <value>

-        /// Content stream allowed.

+        /// Gets the content stream allowed flag.

         /// </value>

         ContentStreamAllowed? ContentStreamAllowed { get; }

     }

@@ -918,6 +939,9 @@
     {

     }

 

+    /// <summary>

+    /// Secondary type interface.

+    /// </summary>

     public interface ISecondaryType : IObjectType

     {

     }

@@ -927,7 +951,14 @@
     /// </summary>

     public interface IRelationshipType : IObjectType

     {

+        /// <summary>

+        /// Gets the list of allowed source object types.

+        /// </summary>

         IList<IObjectType> GetAllowedSourceTypes { get; }

+

+        /// <summary>

+        /// Gets the list of allowed target object types.

+        /// </summary>

         IList<IObjectType> GetAllowedTargetTypes { get; }

     }

 

@@ -947,26 +978,81 @@
 

     public interface IItemEnumerable<T> : IEnumerable<T>

     {

+        /// <summary>

+        /// Skips to position within the CMIS collection.

+        /// </summary>

+        /// <param name="position">the position</param>

+        /// <returns>IItemEnumerable whose starting point is the specified skip to position</returns>

         IItemEnumerable<T> SkipTo(BigInteger position);

+

+        /// <summary>

+        /// Gets an IItemEnumerable for the current sub collection within

+        /// the CMIS collection using default maximum number of items.

+        /// </summary>

+        /// <returns>IItemEnumerable for current page</returns>

         IItemEnumerable<T> GetPage();

+

+        /// <summary>

+        /// Gets an IItemEnumerable for the current sub collection within the CMIS collection.

+        /// </summary>

+        /// <param name="maxNumItems">maximum number of items the sub collection will contain</param>

+        /// <returns>IItemEnumerable for current page</returns>

         IItemEnumerable<T> GetPage(int maxNumItems);

+

+        /// <value>

+        /// Gets the number of items fetched for the current page.

+        /// </value>

         BigInteger PageNumItems { get; }

+

+        /// <value>

+        /// Gets whether the repository contains additional items beyond the page of items already fetched.

+        /// </value>

         bool HasMoreItems { get; }

+        

+        /// <value>

+        /// Gets the total number of items. If the repository knows the total number of items

+        /// in a result set, the repository SHOULD include the number here.

+        /// If the repository does not know the number of items in a result set,

+        /// this parameter SHOULD not be set. The value in the parameter MAY NOT be

+        /// accurate the next time the client retrieves the result set or the next page

+        /// in the result set.

+        /// </value>

         BigInteger TotalNumItems { get; }

     }

 

+    /// <summary>

+    /// Object ID interface.

+    /// </summary>

     public interface IObjectId

     {

         /// <value>

-        /// The object ID.

+        /// Gets the object ID.

         /// </value>

         string Id { get; }

     }

 

+    /// <summary>

+    /// Rendition interface.

+    /// </summary>

     public interface IRendition : IRenditionData

     {

+        /// <summary>

+        /// Returns the rendition document if the rendition is a stand-alone document.

+        /// </summary>

+        /// <returns>the rendition document or <c>null</c> if there is no rendition document</returns>

         IDocument GetRenditionDocument();

+

+        /// <summary>

+        /// * Returns the rendition document using the provided operation context if the rendition is a stand-alone document.

+        /// </summary>

+        /// <param name="context">the operation context</param>

+        /// <returns>the rendition document or <c>null</c> if there is no rendition document</returns>

         IDocument GetRenditionDocument(IOperationContext context);

+

+        /// <summary>

+        /// Returns the content stream of the rendition.

+        /// </summary>

+        /// <returns>the content stream of the rendition or <c>null</c> if the rendition has no content</returns>

         IContentStream GetContentStream();

     }

 

@@ -976,42 +1062,42 @@
     public interface IProperty

     {

         /// <value>

-        /// The property ID.

+        /// Gets the property ID.

         /// </value>

         string Id { get; }

 

         /// <value>

-        /// The property local name.

+        /// Gets the property local name.

         /// </value>

         string LocalName { get; }

 

         /// <value>

-        /// Property display name.

+        /// Gets the property display name.

         /// </value>

         string DisplayName { get; }

 

         /// <value>

-        /// Property query name.

+        /// Gets the property query name.

         /// </value>

         string QueryName { get; }

 

         /// <value>

-        /// Gets if the property is a multi-value property.

+        /// Gets whether this property is a multi-value property or not.

         /// </value>

         bool IsMultiValued { get; }

 

         /// <value>

-        /// The property type.

+        /// Gets the property type.

         /// </value>

         PropertyType? PropertyType { get; }

 

         /// <value>

-        /// The property definition.

+        /// Gets the property definition.

         /// </value>

         IPropertyDefinition PropertyDefinition { get; }

 

         /// <value>

-        /// The property value.

+        /// Gets the property value.

         /// </value>

         /// <remarks>

         /// If the property is a single-value property the single value is returned.

@@ -1020,7 +1106,7 @@
         object Value { get; }

 

         /// <value>

-        /// The value list of the property.

+        /// Gets the value list of the property.

         /// </value>

         /// <remarks>

         /// If the property is a single-value property a list with one or no items is returned.

@@ -1028,17 +1114,17 @@
         IList<object> Values { get; }

 

         /// <value>

-        /// The first value of the value list or <c>null</c> if the list has no values.

+        /// Gets the first value of the value list or <c>null</c> if the list has no values.

         /// </value>

         object FirstValue { get; }

 

         /// <value>

-        /// A string representation of the first value of the value list.

+        /// Gets a string representation of the first value of the value list.

         /// </value>

         string ValueAsString { get; }

 

         /// <value>

-        /// A string representation of the value list.

+        ///Gets a string representation of the value list.

         /// </value>

         string ValuesAsString { get; }

     }

@@ -1103,52 +1189,52 @@
         DateTime? GetPropertyAsDateTimeValue(string propertyId);

 

         /// <value>

-        /// The name of this CMIS object (CMIS property <c>cmis:name</c>).

+        /// Gets the name of this CMIS object (CMIS property <c>cmis:name</c>).

         /// </value>

         string Name { get; }

 

         /// <value>

-        /// The user who created this CMIS object (CMIS property <c>cmis:createdBy</c>).

+        /// Gets the user who created this CMIS object (CMIS property <c>cmis:createdBy</c>).

         /// </value>

         string CreatedBy { get; }

 

         /// <value>

-        /// The timestamp when this CMIS object has been created (CMIS property <c>cmis:creationDate</c>).

+        /// Gets the timestamp when this CMIS object has been created (CMIS property <c>cmis:creationDate</c>).

         /// </value>

         DateTime? CreationDate { get; }

 

         /// <value>

-        /// The user who modified this CMIS object (CMIS property <c>cmis:lastModifiedBy</c>).

+        /// Gets the user who modified this CMIS object (CMIS property <c>cmis:lastModifiedBy</c>).

         /// </value>

         string LastModifiedBy { get; }

 

         /// <value>

-        /// The timestamp when this CMIS object has been modified (CMIS property <c>cmis:lastModificationDate</c>).

+        /// Gets the timestamp when this CMIS object has been modified (CMIS property <c>cmis:lastModificationDate</c>).

         /// </value>

         DateTime? LastModificationDate { get; }

 

         /// <value>

-        /// The ID of the base type of this CMIS object (CMIS property <c>cmis:baseTypeId</c>).

+        /// Gets the ID of the base type of this CMIS object (CMIS property <c>cmis:baseTypeId</c>).

         /// </value>

         BaseTypeId BaseTypeId { get; }

 

         /// <value>

-        /// The base type of this CMIS object (object type identified by <c>cmis:baseTypeId</c>).

+        /// Gets the base type of this CMIS object (object type identified by <c>cmis:baseTypeId</c>).

         /// </value>

         IObjectType BaseType { get; }

 

         /// <value>

-        /// The type of this CMIS object (object type identified by <c>cmis:objectTypeId</c>).

+        /// Gets the type of this CMIS object (object type identified by <c>cmis:objectTypeId</c>).

         /// </value>

         IObjectType ObjectType { get; }

 

         /// <value>

-        /// The change token (CMIS property <c>cmis:changeToken</c>).

+        /// Gets the change token (CMIS property <c>cmis:changeToken</c>).

         /// </value>

         string ChangeToken { get; }

 

         /// <value>

-        /// The secondary types.

+        /// Gets the secondary types.

         /// </value>

         IList<ISecondaryType> SecondaryTypes { get; }

     }

@@ -1190,17 +1276,17 @@
     public interface ICmisObject : IObjectId, ICmisObjectProperties

     {

         /// <value>

-        /// The allowable actions if they have been fetched for this object.

+        /// Gets the allowable actions if they have been fetched for this object.

         /// </value>

         IAllowableActions AllowableActions { get; }

 

         /// <value>

-        /// The relationships if they have been fetched for this object.

+        /// Gets the relationships if they have been fetched for this object.

         /// </value>

         IList<IRelationship> Relationships { get; }

 

         /// <value>

-        /// The ACL if it has been fetched for this object.

+        /// Gets the ACL if it has been fetched for this object.

         /// </value>

         IAcl Acl { get; }

 

@@ -1398,27 +1484,27 @@
         string CheckinComment { get; }

 

         /// <value>

-        /// The content stream length or <c>null</c> if the document has no content (CMIS property <c>cmis:contentStreamLength</c>).

+        /// Gets the content stream length or <c>null</c> if the document has no content (CMIS property <c>cmis:contentStreamLength</c>).

         /// </value>

         long? ContentStreamLength { get; }

 

         /// <value>

-        /// The content stream MIME type or <c>null</c> if the document has no content (CMIS property <c>cmis:contentStreamMimeType</c>).

+        /// Gets the content stream MIME type or <c>null</c> if the document has no content (CMIS property <c>cmis:contentStreamMimeType</c>).

         /// </value>

         string ContentStreamMimeType { get; }

 

         /// <value>

-        /// The content stream filename or <c>null</c> if the document has no content (CMIS property <c>cmis:contentStreamFileName</c>).

+        /// Gets the content stream filename or <c>null</c> if the document has no content (CMIS property <c>cmis:contentStreamFileName</c>).

         /// </value>

         string ContentStreamFileName { get; }

 

         /// <value>

-        /// The content stream ID or <c>null</c> if the document has no content (CMIS property <c>cmis:contentStreamId</c>).

+        /// Gets the content stream ID or <c>null</c> if the document has no content (CMIS property <c>cmis:contentStreamId</c>).

         /// </value>

         string ContentStreamId { get; }

 

         /// <value>

-        /// The content stream hashes or <c>null</c> if the document has no content or the repository hasn't provided content hashes (CMIS property <c>cmis:contentStreamHash</c>).

+        /// Gets the content stream hashes or <c>null</c> if the document has no content or the repository hasn't provided content hashes (CMIS property <c>cmis:contentStreamHash</c>).

         /// </value>

         IList<IContentStreamHash> ContentStreamHashes { get; }

     }

@@ -1564,12 +1650,12 @@
     public interface IFolderProperties

     {

         /// <value>

-        /// The parent ID.

+        /// Gets the parent ID.

         /// </value>

         string ParentId { get; }

 

         /// <value>

-        /// The list of allowable child object types.

+        /// Gets the list of allowable child object types.

         /// </value>

         IList<IObjectType> AllowedChildObjectTypes { get; }

     }

@@ -1594,6 +1680,14 @@
         IItem CreateItem(IDictionary<string, object> properties, IList<IPolicy> policies, IList<IAce> addAces, IList<IAce> removeAces,

             IOperationContext context);

         IItem CreateItem(IDictionary<string, object> properties);

+

+        /// <summary>

+        /// Deletes this folder and all subfolders.

+        /// </summary>

+        /// <param name="allversions">a flag whether all versions or just the filed version of a document should be deleted</param>

+        /// <param name="unfile">defines the unfiling behavoir</param>

+        /// <param name="continueOnFailure">a flag whether the operation should continue if an error occurs or not</param>

+        /// <returns>a list of object IDs which failed to be deleted</returns>

         IList<string> DeleteTree(bool allversions, UnfileObject? unfile, bool continueOnFailure);

 

         /// <summary>

@@ -1662,16 +1756,26 @@
         bool IsRootFolder { get; }

 

         /// <value>

-        /// The parent of this folder or <c>null</c> if this folder is the root folder.

+        /// Gets the parent of this folder or <c>null</c> if this folder is the root folder.

         /// </value>

         IFolder FolderParent { get; }

 

         /// <value>

-        /// The path of this folder.

+        /// Gets the path of this folder.

         /// </value>

         string Path { get; }

 

+        /// <summary>

+        /// Returns all checked out documents in this folder.

+        /// </summary>

+        /// <returns>the checked out documents</returns>

         IItemEnumerable<IDocument> GetCheckedOutDocs();

+

+        /// <summary>

+        /// Returns all checked out documents in this folder using the given operation context.

+        /// </summary>

+        /// <param name="context">the operation context</param>

+        /// <returns>the checked out documents</returns>

         IItemEnumerable<IDocument> GetCheckedOutDocs(IOperationContext context);

     }

 

@@ -1681,7 +1785,7 @@
     public interface IPolicyProperties

     {

         /// <value>

-        /// The policy text of this CMIS policy (CMIS property <c>cmis:policyText</c>).

+        /// Gets the policy text of this CMIS policy (CMIS property <c>cmis:policyText</c>).

         /// </value>

         string PolicyText { get; }

     }

@@ -1699,12 +1803,12 @@
     public interface IRelationshipProperties

     {

         /// <value>

-        /// The ID of the relationship source object.

+        /// Gets the ID of the relationship source object.

         /// </value>

         IObjectId SourceId { get; }

 

         /// <value>

-        /// The ID of the relationships target object.

+        /// Gets the ID of the relationships target object.

         /// </value>

         IObjectId TargetId { get; }

     }

@@ -1767,17 +1871,17 @@
     public interface IContentStreamHash

     {

         /// <value>

-        /// The content stream hash property value.

+        /// Gets the content stream hash property value.

         /// </value>

         string PropertyValue { get; }

 

         /// <value>

-        /// The hash algorithm.

+        /// Gets the hash algorithm.

         /// </value>

         string Algorithm { get; }

 

         /// <value>

-        /// The hash value.

+        /// Gets the hash value.

         /// </value>

         string Hash { get; }

     }

@@ -1790,11 +1894,11 @@
         /// <value>

         /// Gets the property.

         /// </value>

-        /// <param name="queryName">the propertys query name or alias</param>

+        /// <param name="queryName">the property's query name or alias</param>

         IPropertyData this[string queryName] { get; }

 

         /// <value>

-        /// List of all properties in this query result.

+        /// Gets the list of all properties in this query result.

         /// </value>

         IList<IPropertyData> Properties { get; }

 

@@ -1830,17 +1934,17 @@
         IList<object> GetPropertyMultivalueById(string propertyId);

 

         /// <value>

-        /// The allowable actions if they were requested.

+        /// Gets the allowable actions if they were requested.

         /// </value>

         IAllowableActions AllowableActions { get; }

 

         /// <value>

-        /// The relationships if they were requested.

+        /// Gets the relationships if they were requested.

         /// </value>

         IList<IRelationship> Relationships { get; }

 

         /// <value>

-        /// The renditions if they were requested.

+        /// Gets the renditions if they were requested.

         /// </value>

         IList<IRendition> Renditions { get; }

     }

@@ -1851,22 +1955,22 @@
     public interface IChangeEvent : IChangeEventInfo

     {

         /// <value>

-        /// The object ID.

+        /// Gets the object ID.

         /// </value>

         string ObjectId { get; }

 

         /// <value>

-        /// The object properties, if provided.

+        /// Gets the object properties, if provided.

         /// </value>

         IDictionary<string, IList<object>> Properties { get; }

 

         /// <value>

-        /// The policy IDs, if provided.

+        /// Gets the policy IDs, if provided.

         /// </value>

         IList<string> PolicyIds { get; }

 

         /// <value>

-        /// The ACL, if provided.

+        /// Gets the ACL, if provided.

         /// </value>

         IAcl Acl { get; }

     }

@@ -1877,22 +1981,22 @@
     public interface IChangeEvents

     {

         /// <value>

-        /// The latest change log token.

+        /// Gets the latest change log token.

         /// </value>

         string LatestChangeLogToken { get; }

 

         /// <value>

-        /// The list of change events.

+        /// Gets the list of change events.

         /// </value>

         IList<IChangeEvent> ChangeEventList { get; }

 

         /// <value>

-        /// The hasMoreItems flag, if provided.

+        /// Gets the hasMoreItems flag, if provided.

         /// </value>

         bool? HasMoreItems { get; }

 

         /// <value>

-        /// The total number of change events, if provided.

+        /// Gets the total number of change events, if provided.

         /// </value>

         BigInteger? TotalNumItems { get; }

     }

diff --git a/PortCMIS/client/ClientObjectFactory.cs b/PortCMIS/client/ClientObjectFactory.cs
index 1d5d3ea..2a1e565 100644
--- a/PortCMIS/client/ClientObjectFactory.cs
+++ b/PortCMIS/client/ClientObjectFactory.cs
@@ -27,16 +27,22 @@
 

 namespace PortCMIS.Client.Impl

 {

+    /// <summary>

+    /// Default IObjectFactory implementation.

+    /// </summary>

     public class ObjectFactory : IObjectFactory

     {

         private ISession session;

 

+        /// <inheritdoc/>

         public virtual void Initialize(ISession session, IDictionary<string, string> parameters)

         {

             this.session = session;

         }

 

         // Acl and ACE

+

+        /// <inheritdoc/>

         public virtual IAcl ConvertAces(IList<IAce> aces)

         {

             if (aces == null) { return null; }

@@ -52,6 +58,7 @@
             return result;

         }

 

+        /// <inheritdoc/>

         public virtual IAcl CreateAcl(IList<IAce> aces)

         {

             Acl acl = new Acl();

@@ -60,6 +67,7 @@
             return acl;

         }

 

+        /// <inheritdoc/>

         public virtual IAce CreateAce(string principal, IList<string> permissions)

         {

             Ace ace = new Ace();

@@ -73,6 +81,8 @@
         }

 

         // policies

+

+        /// <inheritdoc/>

         public virtual IList<string> ConvertPolicies(IList<IPolicy> policies)

         {

             if (policies == null) { return null; }

@@ -90,6 +100,8 @@
         }

 

         // renditions

+

+        /// <inheritdoc/>

         public virtual IRendition ConvertRendition(string objectId, IRenditionData rendition)

         {

             if (rendition == null)

@@ -102,6 +114,8 @@
         }

 

         // content stream

+

+        /// <inheritdoc/>

         public virtual IContentStream CreateContentStream(string filename, long length, string mimetype, Stream stream)

         {

             ContentStream result = new ContentStream();

@@ -114,6 +128,8 @@
         }

 

         // types

+

+        /// <inheritdoc/>

         public virtual IObjectType ConvertTypeDefinition(ITypeDefinition typeDefinition)

         {

             switch (typeDefinition.BaseTypeId)

@@ -135,6 +151,7 @@
             }

         }

 

+        /// <inheritdoc/>

         public virtual IObjectType GetTypeFromObjectData(IObjectData objectData)

         {

             if (objectData == null || objectData.Properties == null)

@@ -158,11 +175,14 @@
         }

 

         // properties

+

+        /// <inheritdoc/>

         public virtual IProperty CreateProperty<T>(IPropertyDefinition type, IList<T> values)

         {

             return new Property(type, (IList<object>)values);

         }

 

+        /// <inheritdoc/>

         protected virtual IProperty ConvertProperty(IObjectType objectType, IList<ISecondaryType> secondaryTypes, IPropertyData pd)

         {

             IPropertyDefinition definition = objectType[pd.Id];

@@ -194,6 +214,7 @@
             return CreateProperty(definition, pd.Values);

         }

 

+        /// <inheritdoc/>

         public virtual IDictionary<string, IProperty> ConvertProperties(IObjectType objectType, IList<ISecondaryType> secondaryTypes, IProperties properties)

         {

             if (objectType == null)

@@ -223,6 +244,7 @@
             return result;

         }

 

+        /// <inheritdoc/>

         public virtual IProperties ConvertProperties(IDictionary<string, object> properties, IObjectType type, IList<ISecondaryType> secondaryTypes, HashSet<Updatability> updatabilityFilter)

         {

             // check input

@@ -378,6 +400,7 @@
             return result;

         }

 

+        /// <inheritdoc/>

         public virtual IList<IPropertyData> ConvertQueryProperties(IProperties properties)

         {

             if ((properties == null) || (properties.PropertyList == null))

@@ -389,6 +412,8 @@
         }

 

         // objects

+

+        /// <inheritdoc/>

         public virtual ICmisObject ConvertObject(IObjectData objectData, IOperationContext context)

         {

             if (objectData == null)

@@ -425,6 +450,7 @@
             }

         }

 

+        /// <inheritdoc/>

         public virtual IQueryResult ConvertQueryResult(IObjectData objectData)

         {

             if (objectData == null)

@@ -435,6 +461,7 @@
             return new QueryResult(session, objectData);

         }

 

+        /// <inheritdoc/>

         public virtual IChangeEvent ConvertChangeEvent(IObjectData objectData)

         {

             ChangeEvent result = new ChangeEvent();

@@ -480,6 +507,7 @@
             return result;

         }

 

+        /// <inheritdoc/>

         public virtual IChangeEvents ConvertChangeEvents(string changeLogToken, IObjectList objectList)

         {

             if (objectList == null)

diff --git a/PortCMIS/data/DataIntf.cs b/PortCMIS/data/DataIntf.cs
index 4bd1fb9..d2b9552 100644
--- a/PortCMIS/data/DataIntf.cs
+++ b/PortCMIS/data/DataIntf.cs
@@ -200,28 +200,99 @@
     /// </summary>

     public interface ITypeDefinition : IExtensionsData

     {

+        /// <value>

+        /// Gets the type ID.

+        /// </value>

         string Id { get; }

+

+        /// <value>

+        /// Gets the local name.

+        /// </value>

         string LocalName { get; }

+

+        /// <value>

+        /// Gets the local name space.

+        /// </value>

         string LocalNamespace { get; }

+

+        /// <value>

+        /// Gets the display name.

+        /// </value>

         string DisplayName { get; }

+

+        /// <value>

+        /// Gets the query name.

+        /// </value>

         string QueryName { get; }

+

+        /// <value>

+        /// Gets the description.

+        /// </value>

         string Description { get; }

+

+        /// <value>

+        /// Gets the ID of the base type.

+        /// </value>

         BaseTypeId BaseTypeId { get; }

+

+        /// <value>

+        /// Gets the ID of the parent type.

+        /// </value>

         string ParentTypeId { get; }

+

+        /// <value>

+        /// Gets whether objects of this type can be created or not.

+        /// </value>

         bool? IsCreatable { get; }

+

+        /// <value>

+        /// Gets whether objects of this type can be filed or not.

+        /// </value>

         bool? IsFileable { get; }

+

+        /// <value>

+        /// Gets whether objects of this type can be queried or not.

+        /// </value>

         bool? IsQueryable { get; }

+

+        /// <value>

+        /// Gets whether objects of this type are indexed or not.

+        /// </value>

         bool? IsFulltextIndexed { get; }

+

+        /// <value>

+        /// Gets whether objects of this type can be found in super type queries or not.

+        /// </value>

         bool? IsIncludedInSupertypeQuery { get; }

+

+        /// <value>

+        /// Gets whether polices can be applied to objects of this type or not.

+        /// </value>

         bool? IsControllablePolicy { get; }

+

+        /// <value>

+        /// Gets whether ACLs can be applied to objects of this type or not.

+        /// </value>

         bool? IsControllableAcl { get; }

+

+        /// <value>

+        /// Gets the property definition for the given property ID.

+        /// </value>

         IPropertyDefinition this[string propertyId] { get; }

+

+        /// <value>

+        /// Gets a list of all property definitions.

+        /// </value>

         IList<IPropertyDefinition> PropertyDefinitions { get; }

+

+        /// <value>

+        /// Gets the type mutability flags.

+        /// </value>

         ITypeMutability TypeMutability { get; }

     }

 

     /// <summary>

-    /// TypeMutability flags.

+    /// Type mutability flags.

     /// </summary>

     public interface ITypeMutability : IExtensionsData

     {

@@ -248,7 +319,7 @@
     {

         /// <value>

         /// Defines whether the type is versionabel or not.

-        /// </summary>

+        /// </value>

         bool? IsVersionable { get; }

 

         /// <value>

@@ -335,12 +406,18 @@
         IList<IChoice<T>> Choices { get; }

     }

 

+    /// <summary>

+    /// Property definition for a boolean property.

+    /// </summary>

     public interface IPropertyBooleanDefinition : IPropertyDefinition

     {

         IList<bool?> DefaultValue { get; }

         IList<IChoice<bool?>> Choices { get; }

     }

 

+    /// <summary>

+    /// Property definition for a date time property.

+    /// </summary>

     public interface IPropertyDateTimeDefinition : IPropertyDefinition

     {

         IList<DateTime?> DefaultValue { get; }

@@ -348,6 +425,9 @@
         DateTimeResolution? DateTimeResolution { get; }

     }

 

+    /// <summary>

+    /// Property definition for a decimal property.

+    /// </summary>

     public interface IPropertyDecimalDefinition : IPropertyDefinition

     {

         IList<decimal?> DefaultValue { get; }

@@ -357,18 +437,27 @@
         DecimalPrecision? Precision { get; }

     }

 

+    /// <summary>

+    /// Property definition for a HTML property.

+    /// </summary>

     public interface IPropertyHtmlDefinition : IPropertyDefinition

     {

         IList<string> DefaultValue { get; }

         IList<IChoice<string>> Choices { get; }

     }

 

+    /// <summary>

+    /// Property definition for an ID property.

+    /// </summary>

     public interface IPropertyIdDefinition : IPropertyDefinition

     {

         IList<string> DefaultValue { get; }

         IList<IChoice<string>> Choices { get; }

     }

 

+    /// <summary>

+    /// Property definition for a integer property.

+    /// </summary>

     public interface IPropertyIntegerDefinition : IPropertyDefinition

     {

         IList<BigInteger?> DefaultValue { get; }

@@ -377,6 +466,9 @@
         BigInteger? MaxValue { get; }

     }

 

+    /// <summary>

+    /// Property definition for a string property.

+    /// </summary>

     public interface IPropertyStringDefinition : IPropertyDefinition

     {

         IList<string> DefaultValue { get; }

@@ -384,6 +476,9 @@
         BigInteger? MaxLength { get; }

     }

 

+    /// <summary>

+    /// Property definition for a URI property.

+    /// </summary>

     public interface IPropertyUriDefinition : IPropertyDefinition

     {

         IList<string> DefaultValue { get; }

diff --git a/PortCMIS/data/Extensions.cs b/PortCMIS/data/Extensions.cs
index 4777397..b689937 100644
--- a/PortCMIS/data/Extensions.cs
+++ b/PortCMIS/data/Extensions.cs
@@ -25,6 +25,9 @@
 

 namespace PortCMIS.Data.Extensions

 {

+    /// <summary>

+    /// An extension element.

+    /// </summary>

     public interface ICmisExtensionElement

     {

         /// <value>

@@ -53,6 +56,9 @@
         IList<ICmisExtensionElement> Children { get; }

     }

 

+    /// <summary>

+    /// Simple ICmisExtensionElement implementation.

+    /// </summary>

     public class CmisExtensionElement : ICmisExtensionElement

     {

         /// <inheritdoc/>

@@ -71,6 +77,9 @@
         public IList<ICmisExtensionElement> Children { get; set; }

     }

 

+    /// <summary>

+    /// Holder of a list of extensions.

+    /// </summary>

     public interface IExtensionsData

     {

         /// <value>

@@ -79,6 +88,9 @@
         IList<ICmisExtensionElement> Extensions { get; set; }

     }

 

+    /// <summary>

+    /// Simple IExtensionsData implementation.

+    /// </summary>

     public class ExtensionsData : IExtensionsData

     {

         /// <inheritdoc/>

diff --git a/README b/README
index 27329fd..6037330 100644
--- a/README
+++ b/README
@@ -15,7 +15,7 @@
 

 PortCMIS 0.1:

 

-Initial relase

+Initial release

 

   

 Strong-Name signing