         - name: The name of the element to be initialized
         - index: The index of the element to be initialized
     */
-    init(name: String, index: Int = 0, caseInsensitive: Bool, userInfo: [CodingUserInfoKey: Any] = [:]) {
+    init(name: String, index: Int = 0, options: SWXMLHashOptions) {
         self.name = name
-        self.caseInsensitive = caseInsensitive
         self.index = index
-        self.userInfo = userInfo
+        self.options = options
     }
 
     /**

        // clear any prior runs of parse... expected that this won't be necessary,
        // but you never know
        parentStack.removeAll()
        root = XMLElement(name: rootElementName, caseInsensitive: options.caseInsensitive)
        parentStack.push(root)

        self.ops = ops

/// The implementation of XMLParserDelegate and where the parsing actually happens.
class FullXMLParser: NSObject, SimpleXmlParser, XMLParserDelegate {
    required init(_ options: SWXMLHashOptions) {
        root = XMLElement(name: rootElementName, options: options)
        self.options = options
        super.init()
    }

    let root: XMLElement
    var parentStack = Stack<XMLElement>()
    let options: SWXMLHashOptions

