// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

// <auto-generated/>

#nullable disable

using System.Collections.Generic;

namespace Azure.Analytics.Synapse.Artifacts.Models
{
    /// <summary> Xml read settings. </summary>
    public partial class XmlReadSettings : FormatReadSettings
    {
        /// <summary> Initializes a new instance of XmlReadSettings. </summary>
        public XmlReadSettings()
        {
            Type = "XmlReadSettings";
        }

        /// <summary> Initializes a new instance of XmlReadSettings. </summary>
        /// <param name="type"> The read setting type. </param>
        /// <param name="additionalProperties"> . </param>
        /// <param name="compressionProperties"> Compression settings. </param>
        /// <param name="validationMode"> Indicates what validation method is used when reading the xml files. Allowed values: &apos;none&apos;, &apos;xsd&apos;, or &apos;dtd&apos;. Type: string (or Expression with resultType string). </param>
        /// <param name="detectDataType"> Indicates whether type detection is enabled when reading the xml files. Type: boolean (or Expression with resultType boolean). </param>
        /// <param name="namespaces"> Indicates whether namespace is enabled when reading the xml files. Type: boolean (or Expression with resultType boolean). </param>
        /// <param name="namespacePrefixes"> Namespace uri to prefix mappings to override the prefixes in column names when namespace is enabled, if no prefix is defined for a namespace uri, the prefix of xml element/attribute name in the xml data file will be used. Example: &quot;{&quot;http://www.example.com/xml&quot;:&quot;prefix&quot;}&quot; Type: object (or Expression with resultType object). </param>
        internal XmlReadSettings(string type, IDictionary<string, object> additionalProperties, CompressionReadSettings compressionProperties, object validationMode, object detectDataType, object namespaces, object namespacePrefixes) : base(type, additionalProperties)
        {
            CompressionProperties = compressionProperties;
            ValidationMode = validationMode;
            DetectDataType = detectDataType;
            Namespaces = namespaces;
            NamespacePrefixes = namespacePrefixes;
            Type = type ?? "XmlReadSettings";
        }

        /// <summary> Compression settings. </summary>
        public CompressionReadSettings CompressionProperties { get; set; }
        /// <summary> Indicates what validation method is used when reading the xml files. Allowed values: &apos;none&apos;, &apos;xsd&apos;, or &apos;dtd&apos;. Type: string (or Expression with resultType string). </summary>
        public object ValidationMode { get; set; }
        /// <summary> Indicates whether type detection is enabled when reading the xml files. Type: boolean (or Expression with resultType boolean). </summary>
        public object DetectDataType { get; set; }
        /// <summary> Indicates whether namespace is enabled when reading the xml files. Type: boolean (or Expression with resultType boolean). </summary>
        public object Namespaces { get; set; }
        /// <summary> Namespace uri to prefix mappings to override the prefixes in column names when namespace is enabled, if no prefix is defined for a namespace uri, the prefix of xml element/attribute name in the xml data file will be used. Example: &quot;{&quot;http://www.example.com/xml&quot;:&quot;prefix&quot;}&quot; Type: object (or Expression with resultType object). </summary>
        public object NamespacePrefixes { get; set; }
    }
}
