@@ -45,7 +45,7 @@ extension XML {
4545#endif
4646
4747 private let parser : FoundationXMLParser
48- private let namespaceURI = " http://www.w3.org/2000/svg "
48+ private let validNamespaces = Set ( [ " http://www.w3.org/2000/svg " , " " ] )
4949
5050 private var rootNode : Element ?
5151 private var elements : [ Element ]
@@ -84,10 +84,13 @@ extension XML {
8484 return try parse ( data: data)
8585 }
8686
87+ func isValidNamespaceURI( _ uri: String ? ) -> Bool {
88+ validNamespaces. contains ( uri ?? " " )
89+ }
90+
8791 func parser( _ parser: FoundationXMLParser , didStartElement elementName: String , namespaceURI: String ? , qualifiedName _: String ? , attributes attributeDict: [ String : String ] = [ : ] ) {
8892 guard
89- self . parser === parser,
90- namespaceURI == self . namespaceURI else {
93+ self . parser === parser, isValidNamespaceURI ( namespaceURI) else {
9194 return
9295 }
9396
@@ -103,9 +106,7 @@ extension XML {
103106 }
104107
105108 func parser( _ parser: FoundationXMLParser , didEndElement elementName: String , namespaceURI: String ? , qualifiedName _: String ? ) {
106- guard
107- namespaceURI == self . namespaceURI,
108- currentElement. name == elementName else {
109+ guard isValidNamespaceURI ( namespaceURI) , currentElement. name == elementName else {
109110 return
110111 }
111112
0 commit comments