首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XML元素名称

XML元素名称
EN

Stack Overflow用户
提问于 2010-09-16 04:23:44
回答 3查看 726关注 0票数 1

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

代码语言:javascript
复制
<dosage>overview of dose info
   <elderly>doses for elderly patients</elderly>
   <children>doses for children</children>
</dosage>
<administration>info about administering the med...</administration>

我强烈认为应该更改元素名称以反映元素是什么,例如使用描述内容的属性<section><section displayName='dosage'>。并不是我所有的同事都同意。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-16 04:38:59

考虑一下elderlychildren的情况。标签应该定义它是什么--在本例中,它们都是特定于特定类型的人的剂量说明。但是使用childrenelderly并不能传达这些信息--两者之间没有关系。如果它是<instructions target="elderly">...</instructions>,那么这种关系就会得到维护。两者都是针对不同targetsinstructions

对于dosageadministration部分,这两者都可以被认为是药物的属性。您在这里所做的工作取决于整个文档的结构以及它将如何被解析。在我看来,dosageadministration非常不同。如果您将其定义为OOL中的对象,您将拥有:

代码语言:javascript
复制
class Medication
{
    Dictionary<string, string> dosageInstructions; //or <PersonType, string>, preferably
    string administrationInfo;
}

这两者都是不同的属性,它们之间没有真正的可比性(好吧,除此之外,它们都是药物的属性)。我不认为比现在更抽象它是有用的,但它是可以根据整个文档的结构和如何使用而争论的东西。

例如,如果要打印一系列不同属性的键-值对(例如,一个键是administration,那个值就是信息),那么就可以这样做。但是dosage有一个与administration截然不同的结构,所以我不认为这种特定的抽象有用。如果每种药物都有一组固定的可能属性(剂量、给药信息等),这些属性都将被区别对待,那么在我看来,对所有药物使用不同的标签将是合乎逻辑的。

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

票数 1
EN

Stack Overflow用户

发布于 2010-09-16 04:43:34

我发现,通常情况下,像您提供的示例那样定义XML会更清楚一些。

代码语言:javascript
复制
<dosage>
   <elderly>doses for elderly patients</elderly>
   <children>doses for children</children>
</dosage>
<administration>info about administering the med...</administration>

作为您提出的命名法的一个极端示例,您可能会得到以下结果:

代码语言:javascript
复制
<field name="dosage">
    <field name="elderly">doses for elderly patients</field>
    <field name="children">doses for children</field>
</field>

当然,最终这一切都取决于具体的应用程序,但通常我会尝试根据需要将现实世界中的亲切感和属性抽象到XML中,但不会更多。

因此,在本例中,"section“元素是一个过度抽象。

票数 1
EN

Stack Overflow用户

发布于 2010-09-16 04:53:52

我认为这有点过头了。我遵循一条规则,它是否具有脱离上下文的语义意义?节可能脱离上下文是有意义的,但是你知道你正在丢失相关的语义信息。那么我们需要知道什么呢?它包含了doosage信息。所以也许dosageinfo会更好?

在对老年人和儿童采取同样的方法之后,我们假设这些元素代表老年人和儿童。嗯..。不怎么有意思。如果他们的名字反映了他们所做的事情,他们应该更像这样:

代码语言:javascript
复制
<dosageinfo>
<dosage recipient="elderly">Blah</dosage>
<dosage recipient="children"></dosage>
</dosageinfo>

也就是说,这肯定不是一个正式的方法-我实际上从来没有见过一个正式的方法被提出。

既然我在这里,并且有以各种方式处理临床数据的丰富经验,我还建议您尝试将一些免费文本转换为正式的XML数据,即使您必须使用自然语言解析来收集其中的一些数据。任何正式的数据,甚至是人工智能收集的数据,只要它被正确地表示出来,都可以使未来的信息查询变得更加容易。它可能与您的场景无关,但我觉得它值得考虑。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3721507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档