C++ XML文件格式的布尔值应该写为true/false还是1/0?
经过三十年的二进制文件格式开发,我(终于)写出了一个XML文档文件格式 我已经找到了文档标题的一部分,在这里我需要写大约50个独立的布尔数据成员,我想知道:我应该把它们写为1/0还是真/假 我知道XML规范可能会有任何结果。一方面,当读回文件格式时,1/0似乎工作量更少。但是既然文件格式很小,周期也很便宜,那么让文件格式尽可能具有符号性是否被认为是合适的XML呢?如果是这样,XML是否适合对所有枚举变量执行相同的操作(输出它们的符号名和值——这可能会发生变化?) 另一方面--我正在以这种形式生成XML:C++ XML文件格式的布尔值应该写为true/false还是1/0?,c++,xml,xml-parsing,xml-serialization,file-format,C++,Xml,Xml Parsing,Xml Serialization,File Format,经过三十年的二进制文件格式开发,我(终于)写出了一个XML文档文件格式 我已经找到了文档标题的一部分,在这里我需要写大约50个独立的布尔数据成员,我想知道:我应该把它们写为1/0还是真/假 我知道XML规范可能会有任何结果。一方面,当读回文件格式时,1/0似乎工作量更少。但是既然文件格式很小,周期也很便宜,那么让文件格式尽可能具有符号性是否被认为是合适的XML呢?如果是这样,XML是否适合对所有枚举变量执行相同的操作(输出它们的符号名和值——这可能会发生变化?) 另一方面--我正在以这种形式生成
<FieldName>true</FieldName>
<FieldName value="true"/>
true
不是本表格:
<FieldName>true</FieldName>
<FieldName value="true"/>
在阅读了几十篇相互冲突的论文和帖子(有些是堆栈溢出)后,似乎大多数人都不赞成属性样式(例如#2)。XML与二进制格式相比过于冗长,因此可能并不重要。但是为了便于使用和清晰,我将把它写成
true
和false
您要问的基本上是XML社区中的文化约定是什么。文化习俗是做你自己的事。但是,值得注意的是,XSLT和XQuery将xs:boolean类型的值序列化为“true”或“false”
对于元素和属性,这是一个古老的概念,对于这样的简单数据,这两种形式都是完全可以接受的。只需在文档或文档系列中保持一致即可