我正在处理的CCDA生成器的当前实现,当找不到某些名称时,在<name>
tag(在标题部分,其中没有<text>
可用)上打印消息:
<name>No information</name>
我知道表达未找到信息的正确方法是通过@nullFlavor属性:
<name nullFlavor="NI" />
但是现在应用程序上有一个组件可以读取标签上的值,并在人类可读的CCDA文档视图中显示它。如果我只使用@nullflavor,则显示此名称的字段将为空,而不是“无信息”。
为了避免更改这样的组件,我正在考虑添加@nullFlavor属性,但仍然在那里留言:
<name nullFlavor="NI">No information</name>
我知道这在语法上是正确的,因为我已经用reference validator测试了它并且它通过了。我的问题是:从语义的角度来看,它是否有效?
答案 0 :(得分:2)
是的,它有效。有问题的特定规范 - v3抽象数据类型,简单说:
invariant(ST x) where x.nonNull {
x.headCharacter.notEmpty;
};
因此,如果没有nullFlavor,则必须有一些内容。但反向规则未适用;如果有nullFlavor
,可以有内容答案 1 :(得分:0)
虽然没有限制,但我的观点是,这不是一个好策略。我知道你对这个组件有一个限制,但是,当你构建一个CDA时,重要的是要记住它是与每个人共享的东西,我永远不会期望在{{1}内找到内容归因元素。