The Artima Developer Community
Sponsored Link

.NET Buzz Forum
XAML: Eigenen XML-Namespace erstellen

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
-

Posts: 1524
Nickname: nitronic
Registered: Jul, 2006

Norbert Eder works as a software architect.
XAML: Eigenen XML-Namespace erstellen Posted: May 23, 2008 7:22 AM
Reply to this message Reply

This post originated from an RSS feed registered with .NET Buzz by -.
Original Post: XAML: Eigenen XML-Namespace erstellen
Feed Title: Norbert Eder - Living .NET
Feed URL: http://feeds.feedburner.com/NorbertEder-Livingnet
Feed Description: Copyright (c)2005, 2006 by Norbert Eder
Latest .NET Buzz Posts
Latest .NET Buzz Posts by -
Latest Posts From Norbert Eder - Living .NET

Advertisement
Wer bereits etwas mit WPF gemacht hat, wird den WPF und den XAML Namespace kennen. Beide werden automatisch beim Erstellen eines Elementes in das vordefinierte XAML eingetragen.
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Zum Einen stehen uns darüber alle möglichen WPF-Elemente zur Verfügung, als auch ein paar XAML-Erweiterungen (Präfix x:) für das Erstellen von Arrays, Inline-Code, Typenangaben usw.

Wer nun eigene Elemente einbinden möchte, greift für gewöhnlich auf einen CLR-Namespace zurück:
xmlns:demo="clr-namespace:WpfNamespaceDemo.Lib;assembly=WpfNamespace.Lib"


Wurden nun jedoch zahlreiche Elemente entwickelt, liegen diese in unterschiedlichen Namespaces und sollen viele davon in einem Window verwendet werden, entsteht eine nette Liste von CLR-Namespace-Definitionen. Viel einfacher geht dies über die Erstellung eines eigenen XML-Namespaces.

Hierfür kann das Attribute XmlnDefinition verwendet werden. Dieses wird in der AssemblyInfo.cs definiert und sieht so aus:
[assembly: XmlnsDefinition(
    "http://www.norberteder.com/2008/wpf", 
    "WpfNamespaceDemo")]

Was wird hier gemacht? Der erste Parameter definiert den Wert des eigenen XML-Namespaces, der zweite Parameter gibt an, welcher CLR-Namespace in zum XML-Namespace hinzugefügt werden soll. Dies kann nun für mehere CLR-Namespaces gemacht werden.

Schlussendlich kann darauf nun folgendermaßen zugegriffen werden:
xmlns:local="http://www.norberteder.com/2008/wpf"

Es werden nun sämtliche CLR-Namespaces eingebunden, welche unter dem XML-Namespace zusammengefasst wurden. Dies fördert die Übersichtlichkeit und vermindert Fehler. Allerdings muss dies auch entsprechend gewartet werden und kann aufwendiger werden, wenn zig unterschiedliche Assemblies ins Spiel kommen.

Hinweis: Wird in der aktuellen Assembly ein XML-Namespace definiert, kann dieser nicht verwendet werden. Dies funktioniert nur, wenn eine Assembly mit einem definierten XML-Namespace eingebunden wird.

Read: XAML: Eigenen XML-Namespace erstellen

Topic: ReSharper 4.0 Beta is available! Previous Topic   Next Topic Topic: blueKiwi SharePoint connector

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use