SGML 是 HTML 和 XML 的超集。有丰富的 HTML 和 XML 解析器可用。你能解释一下吗
在当前业务领域中使用 SGML(示例业务场景)?
是在处理遗留系统时吗?
HTML、xml 文档有 HTML 和 XML 解析器。为什么选择 SGML 解析器?
我的想法可能是错误的,请给我一些反馈?
SGML 是 HTML 和 XML 的超集。有丰富的 HTML 和 XML 解析器可用。你能解释一下吗
在当前业务领域中使用 SGML(示例业务场景)?
是在处理遗留系统时吗?
HTML、xml 文档有 HTML 和 XML 解析器。为什么选择 SGML 解析器?
我的想法可能是错误的,请给我一些反馈?
在当前业务领域中使用 SGML(示例业务场景)?是在处理遗留系统时吗?
是的,我认为它主要用于遗留系统,尽管您可以将其用于:
1.奇怪的语法(ab)使用 SGML 最小化以提供更少冗长的文件(当 SGML 被发明时,人们过去常常通过键入来编写 SGML 文件,因此 SGML 中有几个旨在减少字符数的功能必须输入)
{config:
{attribute name="network":127.0.0.0/8 192.168.123.0/30;}
{attribute name="action":allow;}
;}
代替:
<config>
<attribute name="network">
127.0.0.0/8 192.168.123.0/30
</attribute>
<attribute name="action">
allow
</attribute>
</config>
(当然,这个用例有几个缺点,我不确定它是否超过了它的缺点,但值得一提)
2.从半结构化的人类格式转换,其中部分文本实际上是标签。例如,几年前我有一个实际的工作涉及从这个转换:
From:
To:
This is the subject
(there is a blank line before the subject,
the subject ends with a blank line,
and everything between parentheses is a comment)
This is the message body
对此
<from>sender</from>
<to>addressee</to>
<subject>This is the subject</subject>
<!-- there is a blank line before the subject,
the subject ends with a blank line,
and everything between parentheses is a comment -->
<body>This is the message body</body>
实际示例要复杂得多,有许多变体和可选元素,然后我发现通过 SGML 转换它比为它编写解析器更容易。
HTML、xml 文档有 HTML 和 XML 解析器。为什么选择 SGML 解析器?
HTML 是一种用于描述网页结构(BODY、DIV、TABLE 等)的标记语言,因此它不适合描述更一般的信息,例如配置文件、供应商列表、参考书目等(即您可以将其显示在以 HTML 编写的网页中,但此类信息将难以通过自动化系统提取)
另一方面,XML 面向描述任意数据结构,与布局问题分离。解析 XML 文档很容易,因为 XML 基于简单的规则(文档必须格式正确)。正是由于这条规则,您不能使用 XML 解析器解析 SGML 文件(除非 SGML 文件本身就是格式良好的 XML 文档)。
3.玩忽略/包括标记的部分
<!ENTITY % withAnswers "IGNORE">
What is the answer to life the universe and everything?
<![%withAnswers;[ 42 ]]>
如果您想在生成的文档中包含答案,只需将第一行替换为:
<!ENTITY % withAnswers "INCLUDE">
(但您也可以使用 XML 和参数化 XSLT 来获得相同的结果)
SGML 不仅仅是遗留问题,还有大量组织继续使用 SGML 来发布航空业的文件(想想波音/空中客车公司/巴西航空工业公司),即他们最新的数据修订版直接在 SGML 中发布。
遵循数据标准的行业,例如航空运输协会 (ATA),被锁定在使用标准机构使用的格式,因此 SGML 仍然在很大程度上受到影响。
在技术出版物链的某个时刻,这通常会转换为 XML 和/或 HTML,但作为原始数据源,SGML 即将到来。