XML中的双星号注释表示法

XML中的双星号注释表示法,xml,asterisk,xml-comments,Xml,Asterisk,Xml Comments,使用双星号表示XML中的行注释是否有效?我在分配给我解析的XML文件中经常看到这一点 例如: </someClosingTag> ** This is my line comment in an XML file. <someOpeningTag> **这是我在XML文件中的行注释。 这不是用XML编写注释的正确方法,您可以在此处阅读: 有效注释的示例: 它不是XML注释,但很可能是处理XML内容的应用程序的注释。XML标准()中没有关于**的有效注释(正确的符号是:

使用双星号表示XML中的行注释是否有效?我在分配给我解析的XML文件中经常看到这一点

例如:

</someClosingTag>
** This is my line comment in an XML file.
<someOpeningTag>

**这是我在XML文件中的行注释。

这不是用XML编写注释的正确方法,您可以在此处阅读:

有效注释的示例:


它不是XML注释,但很可能是处理XML内容的应用程序的注释。

XML标准()中没有关于**的有效注释(正确的符号是:

<!-- My comment -->
这里有两件奇怪的事情。首先,当我使用XmlTextWriter生成XML时,星号没有以任何方式分隔(但XmlReader无法读入)第二,在谷歌搜索之后,我在网上找不到其他人有这个问题。我无法想象为什么这么多年来,没有人会在XML值中使用星号而不报告这个问题

解决方法非常简单-只需将星号的任何实例替换为:

 &#42;

这是根据XML标准和Stult. XML.XMLRead没有法律问题。如果您使用XMLTExtWrITER生成XML,您将不得不为此做一个创可贴;可能

Xml = Xml.Replace("*", "&#42;") 

可以,因为我不认为星号会用于XML中的任何其他用途。

+1这导致我遇到了与XmlSerializer非常相似的问题。它在任何星号上都会出错,无论是编码的还是否。因此我必须这样做:
XML.Replace(“*”,“”)
 &#42;
Xml = Xml.Replace("*", "&#42;")