We describe structural recursion for semistructured data and prove several properties which can be used for query optimization. Expressive power and relationship to other query languages are also disucussed. This work is both foundational and relevant to very recent developments related to query languages for XML.