XML元素名称

XML元素名称,xml,nomenclature,Xml,Nomenclature,我需要为我的公司重新定义XML文档和模式。所讨论的文档被分成若干部分,每个部分都包含有关药物的信息,例如 <dosage>overview of dose info <elderly>doses for elderly patients</elderly> <children>doses for children</children> </dosage> <administration>info ab

我需要为我的公司重新定义XML文档和模式。所讨论的文档被分成若干部分,每个部分都包含有关药物的信息,例如

<dosage>overview of dose info
   <elderly>doses for elderly patients</elderly>
   <children>doses for children</children>
</dosage>
<administration>info about administering the med...</administration>
剂量信息概述
老年病人的剂量
儿童剂量
有关管理医疗服务的信息。。。
我强烈认为应该更改元素名称以反映元素的内容,例如
,并使用一个描述内容的属性:
。并非所有同事都同意


我的想法正确吗?有人能为元素命名法提供指导原则吗?他们发现这些原则在实践中很有用

考虑
老年人
儿童
的情况。标签应该定义它是什么——在这种情况下,它们都是特定于特定类型的人的剂量说明。但是使用
儿童
老年人
并不能传达这些信息——这两者之间没有关系。如果改为
,则保持该关系。这两种都是针对不同的
目标的
说明

对于
剂量
给药
部分,这两个部分都可以被认为是药物的性质。您在这里做什么取决于整个文档的结构以及如何解析它。在我看来,
剂量
给药
非常不同。如果将其定义为OOL中的对象,则会:

class Medication
{
    Dictionary<string, string> dosageInstructions; //or <PersonType, string>, preferably
    string administrationInfo;
}
类药物
{
字典剂量说明;//或者,最好是
字符串管理信息;
}
这两者都是不同的性质,它们之间没有真正的相似之处(好吧,除了它们都是药物的性质)。我不认为把它抽象出来会比现在更有用,但基于整个文档的结构以及如何使用它,这是一个可以争论的问题

例如,如果要打印一组不同属性的键值对列表(例如,一个键是
administration
,该值是信息),那么这就是方法。但是,
剂量
给药
有着不同的结构,所以我不认为那个特定的抽象会有用。如果每种药物都有一组固定的可能属性(剂量、给药信息等),它们都会得到不同的处理,那么在我看来,对它们使用不同的标签是合乎逻辑的


至于一般的指导原则,我通常会思考“如何将这个文档定义为一个对象”,然后考虑该对象的XML序列化。这对我来说很有用,因为我更习惯于处理对象,但你的里程数可能会有所不同。当然,在某些情况下,这并不是最好的方法——例如,如果您真的要表示一个文档,比如HTML,那么这就不是最好的方法。但是,如果您使用XML来定义常规数据结构,它通常应该可以正常工作。

我发现,一般来说,按照您提供的示例定义XML会更清晰一些

<dosage>
   <elderly>doses for elderly patients</elderly>
   <children>doses for children</children>
</dosage>
<administration>info about administering the med...</administration>

老年病人的剂量
儿童剂量
有关管理医疗服务的信息。。。
作为您建议的命名法的一个极端例子,您可能会得出以下结论:

<field name="dosage">
    <field name="elderly">doses for elderly patients</field>
    <field name="children">doses for children</field>
</field>

老年病人的剂量
儿童剂量
当然,最终这一切都取决于具体的应用程序,但一般来说,我会尽可能多地将真实世界中的元素和属性抽象为XML,但不会更多


所以在这个例子中,“section”元素是一个过度抽象的元素。

我认为这有点过分了。我遵循一条规则,它在上下文之外有语义意义吗?本节可能在上下文之外有意义,但您知道您正在丢失相关的语义信息。那么我们需要知道什么呢?它包含涂鸦信息。那么也许dosageinfo会更好

按照对老年人和儿童的相同方法,我们假设这些元素代表老年人和儿童。嗯。。。不是真的。如果他们的名字反映了他们所做的事情,他们会更像:

<dosageinfo>
<dosage recipient="elderly">Blah</dosage>
<dosage recipient="children"></dosage>
</dosageinfo>

废话
这就是说,这肯定不是一个正式的方法-我从来没有见过一个正式的方法提出

在这里,我拥有以各种方式处理临床数据的丰富经验,我还建议您尝试将一些自由文本转换为形式化的XML数据,即使您必须使用自然语言解析来收集其中的一些数据。任何形式化的数据,即使是人工智能收集的数据,只要正确地表示出来,将来查询信息就会容易得多。这可能与您的情景无关,但我觉得值得考虑


自由文本中的数据仅用作信息。关系中的数据就是数据和信息。

您能否发布一个示例XML,它看起来与您发布的XML在语义上是相同的,这有助于我理解为什么我更喜欢使用Section作为元素名。如果剂量说明和给药由不同的类别表示,并作为药物对象的属性引用,则应将其视为单独的概念,并具有独特的元素。在这种情况下,剂量和给药信息都由一组字符串表示。那么XML元素代表什么呢?答案:专论的一部分。属性displayName是适当的,因为它是关于该部分的元数据。谢谢你让我思考清楚;)我同意,这个字段太抽象了,在这种情况下不可能有用。我认为“section”是有效的,因为这实际上就是你正在处理的——一个来自专著/文档的部分,就像docbook xml有章节标记,html有p标记一样