 public enum SOAPParamError: Error { case unknown }
 
 // ex. let x: Bool = parseXSDType(v), success only if T(v) is succeeded
-public func parseXSDType<T: ExpressibleByXML>(_ elements: [XMLElement]) throws -> T {
+public func parseXSDType<T: ExpressibleByXML>(_ elements: [Fuzi.XMLElement]) throws -> T {
     guard let e = elements.first, let v = try T(xml: e) else { throw SOAPParamError.unknown }
     return v
 }
 
 // ex. let x: Bool? = parseXSDType(v), failure only if T(v) is failed
-public func parseXSDType<T: ExpressibleByXML>(_ elements: [XMLElement]) throws -> T? {
+public func parseXSDType<T: ExpressibleByXML>(_ elements: [Fuzi.XMLElement]) throws -> T? {
     guard let e = elements.first else { return nil }
     return try T(xml: e)
 }
 
 // ex. let x: [String] = parseXSDType(v), failure only if any T(v.children) is failed
-public func parseXSDType<T: ExpressibleByXML>(_ elements: [XMLElement]) throws -> [T] {
+public func parseXSDType<T: ExpressibleByXML>(_ elements: [Fuzi.XMLElement]) throws -> [T] {
     return try elements.map { e -> T in try parseXSDType([e])}
 }

        public var faultActor: String?
        public var detail: String?

        public init?(xml: XMLElement) {
            guard let faultCode = xml.firstChild(tag: "faultcode")?.stringValue else { return nil } // faultcode MUST be present in a SOAP Fault element
            guard let faultString = xml.firstChild(tag: "faultstring")?.stringValue else { return nil } // faultString MUST be present in a SOAP Fault element
            self.faultCode = faultCode

    }

    public struct Body {
        public var output: Fuzi.XMLElement? // first <(ns2):(name) xmlns:(ns2)="(targetNamespace)">...</...>
        public var fault: Fault?

        public var xml: Fuzi.XMLElement // for now, raw XML

        public init(xml: Fuzi.XMLElement, soapNameSpace: String, targetNamespace: String) {
            self.xml = xml
            self.fault = xml.firstChild(tag: "Fault").flatMap {Fault(xml: $0)}
            self.output = self.fault == nil ? xml.children.first : nil
