与XML相比,使用自定义标记/结构化语言的设计注意事项是什么

问题描述

|| 我想要一个文本接口,用于一些要放入mySQL表中的结构化数据。目前,它是使用以下表示法的文字。 我试图理解为什么使用XML-基本上是在XML标签中使用字段,而不是使用“自定义标记/结构” / ** /,-和|表示表格和字段。 我有将其放入mySQL并将其提取的代码。我只是有点像使用此符号的hack。以后,结构化数据文件将用于导入和导出数据,类似于在导出书签时的Internet Explorer。
/*Table*/
-
Field 1 | Field 2 | Field 3
-
Field 1 | Field 2 | Field 3
使用自定义标记语言和XML的设计注意事项是什么?     

解决方法

        为什么要发明自己的?有十多种轻量级标记语言。 编辑:@Luc M \的答案很好。通常,您(几乎)总是希望使用现有的解析器(如果有)。为什么要重新发明轮子?如果您想要简单的格式,请使用CSV,YAML或JSON。但是XML并没有错,并且有很多可用的固态解析器。大多数雇主都在乎快速,廉价地获得高质量的软件,而编写解析器很少会导致这种情况。     ,        您应该使用XML,因为: XML解析器已经存在。您不必重新发明轮子。 如果您的字段之一包含分隔符会怎样? 您永远不知道您的应用程序如何增长。 XML丰富而成熟,因此您不必考虑应用程序的未来。您可能对自己的解析器感到头疼。 如果您不想使用XML,请考虑使用TrueWill的答案。在开始自己编写代码之前,请做一些研究。     ,        有哪些注意事项? 自助解决方案将为您带来好处: 解析时间:这只会是您可能会得到的。您将很难击败像RapidXML这样的优化解析器来读取数据。但是,解析器将能够直接解析为数据结构,而使用基于语言的轻量级解决方案,您必须遍历它发出的数据结构以生成真实数据。 请注意,仅因为编写优化的解析器很困难,所以预制解决方案仍然有可能胜过您。尽管总是有Boost.Spirit可以帮助您。 对于自己动手的解决方案,这就是我能想到的所有优点。如果这是您要从用户那里获得的数据,那么使用自制解决方案进行错误报告可能会有好处。但是,您正在谈论将要生成和使用的数据。不需要手工编辑,因此错误报告不会成为一个重大问题。 从XML或其他轻量级语言解决方案中获得的东西在其他方面几乎可以解决。     ,        3个原因: (a)XML规范已经过精心编写,关于允许和禁止的内容没有任何歧义。本地规范从来没有像现在这样详尽(我见过成百上千的规范,请相信我),所以您将永远争论特定消息是否有效。 (b)一致性和性能XML解析器的选择范围很广-您将不必担心编写和测试自己的解析器。 (以我的经验,针对本地语言的解析器通常在投入生产之前,先对大约5条测试消息进行了测试,这不可避免地带来了后果。) (c)有一个围绕XML的整个生态系统-编写工具,验证器,编程语言API,安全性,规范化(随便命名);加上使它们全部起作用的技能和知识。 话虽如此,对于非常简单的数据,可能还有其他格式也可以很好地工作,例如Java属性文件。但是我会避免使用CSV-有无数种不同的口味,并且没有正确指定它们。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...