If you misspell an attribute name in an HTML document the browser will simply
ignore it. For example, if you spell the href
attribute as zhref the <a>
tag the attribute will be ignored. For example, this is text is in
such an
<a> tag. It is displayed like a link but it
doesn't go anywhere because it doesn't contain an href
attribute. Intentional misspellings
can be used to temporarily comment out an attributes or an element. XAML doesn't support
this technique directly. If you misspell an attribute or an element the XAML
parser will emit an error message and refused to produce a BAML file or load the
document dynamically. This is the behavior you want if you unintentionally
misspelled an attribute. The compiler will tell you exactly where the error is
and you can quickly find and fix the problem. But temporarily commenting out an attribute
can sometimes be useful when experimenting or prototyping. XAML provides a way
to duplicate the this commenting out technique through the use of the
markup compatibility namespace. Markup compatibility tells the parser which
namespaces are not required to be recognized when loading a XAML document. If
you declare a namespace that will never be recognized, such as "Comment", you
can use that namespace to comment out items by using its prefix.
For example, let say you want to see the effect of removing the
Width property
of a Button but not lose the value it currently has
which would happen if you simply deleted it. Consider the
following,
To comment out the Width attribute you can add the markup compatibility
namespace, then an unknown namespace, and finally declare the unknown namespace
ignorable. This might look like,
I only recommend this when you are prototyping. You shouldn't have commented out text
in production XAML files. Fortunately, this technique makes it easy to
determine if you have removed all such commented out items. Simply delete the
xmlns:c and mc:Ignorable
declarations from Window. The compiler will now
generate and error if you haven't removed comment prefixes. Finally, this technique makes it clear to any reader
(both mechanical and human) that you intended to comment out this property, you
simple didn't just misspell it.
XAML Part VII: Fun with markup compatibility
If you misspell an attribute name in an HTML document the browser will simply ignore it. For example, if you spell the href attribute as zhref the <a> tag the attribute will be ignored. For example, this is text is in such an <a> tag. It is displayed like a link but it doesn't go anywhere because it doesn't contain an href attribute. Intentional misspellings can be used to temporarily comment out an attributes or an element. XAML doesn't support this technique directly. If you misspell an attribute or an element the XAML parser will emit an error message and refused to produce a BAML file or load the document dynamically. This is the behavior you want if you unintentionally misspelled an attribute. The compiler will tell you exactly where the error is and you can quickly find and fix the problem. But temporarily commenting out an attribute can sometimes be useful when experimenting or prototyping. XAML provides a way to duplicate the this commenting out technique through the use of the markup compatibility namespace. Markup compatibility tells the parser which namespaces are not required to be recognized when loading a XAML document. If you declare a namespace that will never be recognized, such as "Comment", you can use that namespace to comment out items by using its prefix. For example, let say you want to see the effect of removing the Width property of a Button but not lose the value it currently has which would happen if you simply deleted it. Consider the following,
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> <Canvas> <Button Canvas.Top="50" Canvas.Left="50" Width="100" Height="50"> Hello </Button> </Canvas> </Window>To comment out the Width attribute you can add the markup compatibility namespace, then an unknown namespace, and finally declare the unknown namespace ignorable. This might look like,
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:c="Comment" mc:Ignorable="c"> <Canvas> <Button Canvas.Top="50" Canvas.Left="50" Width="100" Height="50"> Hello </Button> </Canvas> </Window>You can then comment out the Width and Height attributes,
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:c="Comment" mc:Ignorable="c"> <Canvas> <Button Canvas.Top="50" Canvas.Left="50" c:Width="100" c:Height="50"> Hello </Button> </Canvas> </Window>You can even comment out the entire Button with,
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:c="Comment" mc:Ignorable="c"> <Canvas> <c:Button Canvas.Top="50" Canvas.Left="50" Width="100" Height="50"> Hello </c:Button> </Canvas> </Window>I only recommend this when you are prototyping. You shouldn't have commented out text in production XAML files. Fortunately, this technique makes it easy to determine if you have removed all such commented out items. Simply delete the xmlns:c and mc:Ignorable declarations from Window. The compiler will now generate and error if you haven't removed comment prefixes. Finally, this technique makes it clear to any reader (both mechanical and human) that you intended to comment out this property, you simple didn't just misspell it.
12:49 PM | Add comment | #Cider #XAML