Vue d’ensemble des espaces de noms (LINQ to XML)

Cet article présente les noms XML, les espaces de noms XML, les préfixes d’espace de noms XML et les classes XName et XNamespace.

Les noms XML constituent souvent une source de complexité dans la programmation XML. Un nom XML est constitué d'un espace de noms XML (également appelé URI d'espace de noms XML) et d'un nom local. Un espace de noms XML est similaire à un espace de noms dans un programme .NET. Il vous permet de qualifier de manière unique les noms des éléments et attributs afin d’éviter des conflits de noms entre les différentes parties d’un document XML. Lorsque vous avez déclaré un espace de noms XML, vous pouvez sélectionner un nom local qui doit être unique seulement dans cet espace de noms.

Un autre aspect des noms XML a trait aux préfixes d’espace de noms XML, qui sont en grande partie à l’origine de la complexité des noms XML. Ces préfixes vous permettent de créer un raccourci pour un espace de noms XML, ce qui rend le document XML plus concis et plus compréhensible. Toutefois, la signification d’un préfixe XML dépend du contexte, ce qui augmente la complexité. Par exemple, le préfixe XML aw pourrait être associé à un seul espace de noms XML dans une partie d’une arborescence XML et à un autre espace de noms dans une autre partie.

L’un des avantages d’utiliser LINQ to XML avec C# est que vous n’avez pas besoin d’utiliser des préfixes XML. Quand LINQ to XML charge ou analyse un document XML, chaque préfixe XML est résolu en son espace de noms XML correspondant. Après cela, lorsque vous travaillez avec un document qui utilise des espaces de noms, vous accédez presque toujours aux espaces de noms par le biais de l'URI d'espace de noms, et non par le biais du préfixe d'espace de noms. Quand les développeurs utilisent des noms XML dans LINQ to XML, ils choisissent toujours un nom XML complet (autrement dit, un espace de noms XML et un nom local). Toutefois, LINQ to XML vous permet d’utiliser et de contrôler les préfixes d’espace de noms en fonction des besoins.

Quand vous utilisez LINQ to XML avec Visual Basic et des littéraux XML, vous devez utiliser des préfixes d’espace de noms lorsque vous utilisez des documents dans des espaces de noms.

Dans LINQ to XML, la classe qui représente les noms XML est XName. Les noms XML apparaissent fréquemment dans toute l’API LINQ to XML et chaque fois qu’un nom XML est nécessaire, vous trouvez un paramètre XName. Cependant, il est rare de travailler directement dans un objet XName. XName contient une conversion implicite de chaîne.

Pour plus d’informations, consultez XNamespace et XName.