SUMMARYXQuery has become the standard for querying XML. Just like SQL, XQuery allows nested expressions. To optimize XQuery processing, a lot of research has been done on normalization, i.e., transforming nested expressions to equivalent unnested ones. Previous normalization rules are classified into two categories-source-level and algebra-leveldepending on whether a construct is specified in the XQuery syntax or as equivalent algebraic expressions. From an implementation point of view, the former is preferable to the latter since it can be implemented in a variety of XQuery engines with different algebras. However, existing source-level rules have several problems: They do not handle quantified expressions, incur duplicated query results, and use many temporary files. In this paper, we propose new source-level normalization rules that solve these problems. Through analysis and experiments, we show that our normalization rules can reduce query execution time from hours to a few seconds and can be adapted to a variety of XQuery engines.