Requirements changes are an issue in the software development life cycle which often originates from an incomplete knowledge of the domain of interest. Hardly any requirement manifests in isolation, and usually the provision of one requirement may affect the level of provision of another. Understanding the relations among system requirements is essential to ensuring their consistency and change management. In practice, many organizations either focus their traceability efforts on functional requirements (FRs) or else fail entirely to implement an effective traceability process. Tracing non-functional requirements (NFRs) has, by and large, been neglected. In this paper, we propose a metamodel which explicitly captures NFRs and their relations, and which is independent from any programming paradigm. In addition, we present an implementation using XML-based representations for the metamodel and XQuery queries to represent tracing information.