package Ġdev . ats ush i eno . missing dot . xml Ċ Ċ class ĠXml Namespace Manager Ġ{ Ċ ĉ comp anion Ġobject Ġ{ Ċĉ ĉ const Ġval ĠXml ns 2 0 0 0 Ġ= Ġ" http :// www . w 3 . org / 2 0 0 0 / xmlns /" Ċ ĉ } ĊĊ ĉ private Ġval Ġscopes Ġ= Ġmutable ListOf < HashMap < String , String >>( HashMap ()) ĊĊ ĉ val Ġdefault Namespace : ĠString Ċĉ ĉ get () Ġ= Ġlookup Namespace ("") Ġ?: Ġ"" ĊĊ ĉ fun Ġadd Namespace ( prefix : ĠString , Ġns : ĠString ) Ġ{ Ċĉ ĉ scopes . last ()[ prefix ] Ġ= Ġns Ċ ĉ } ĊĊ ĉ fun Ġlookup Namespace ( prefix : ĠString ) Ġ: ĠString ? Ġ{ Ċĉ ĉ return Ġscopes . last OrNull Ġ{ Ġm Ġ-> Ġm . containsKey ( prefix ) Ġ} ?. get ( prefix ) Ċ ĉ } ĊĊ ĉ fun Ġlookup Prefix ( ns : ĠString ) Ġ: ĠString ? Ġ{ Ċĉ ĉ return Ġscopes . last OrNull Ġ{ Ġm Ġ-> Ġm . contains Value ( ns ) Ġ} ?. entries ?. first Ġ{ Ġp Ġ-> Ġp . value Ġ== Ġns Ġ} ?. key Ċ ĉ } ĊĊ ĉ fun Ġpush Scope () Ġ{ Ċĉ ĉ scopes . add ( HashMap ()) Ċ ĉ } ĊĊ ĉ fun Ġpop Scope () Ġ{ Ċĉ ĉ if Ġ( scopes . size Ġ== Ġ 1 ) Ċĉĉ ĉ throw ĠIllegalStateException (" Attempt Ġto Ġpop Ġscope Ġat Ġits Ġempty Ġstate ") Ċĉ ĉ scopes . remove At ( scopes . size Ġ- Ġ 1 ) Ċ ĉ } ĊĊ ĉ fun Ġremove Namespace ( prefix : ĠString , Ġns : ĠString ) Ġ{ Ċĉ ĉ scopes . last (). remove ( prefix ) Ċ ĉ } ĊĊ ĉ internal Ġfun Ġclear In Scope Namespaces () Ġ{ Ċĉ ĉ scopes . last (). clear () Ċ ĉ } ĊĊ ĉ init Ġ{ Ċĉ ĉ add Namespace ("", Ġ"") Ċ ĉ } Ċ }