如何在XML数据模式中指定只读文本或标签

时间:2010-06-15 22:12:37

标签: xsd smartgwt

我指的是XML数据架构,详见此处:http://www.w3schools.com/schema/default.asp

当我从数据库中检索数据并将其提交给客户端时,我希望将文本字段保留为不可编辑的显示/只读字段。

例如,假设按以下顺序,

<xsd:element ....
<xsd:element name="employeeName" xsd:type="xsd:string"/>
<xsd:element name="projID" xsd:type="xsd:string" readOnly='true'>
<xsd:element name="hireDate" type="xsd:date"/>
<xsd:element ....
<xsd:element name="today" type="xsd:date" readOnly='true'/>
<xsd:element ....

客户端显示将解释xsd流并构造输入表单。 当然,标签是伪模式标签,以说明我需要在表单中间放置一个只读字段。

在上面的示例中,projID和今天应该作为只读字段呈现给用户,但是没有readOnly这样的模式语法。

我知道如何实现这一目标的一种方法是将流分解为两个复杂的类型段,然后将其拆分为两个输入形式,并让客户端在两种形式之间呈现介入标签。

然而,这是有问题的,因为

  1. 我有很多只读信息 需要呈现的字段 你是谁。会有太多 中断到顺利的单身 形成。最好只有一个输入表单。
  2. 有些只读字段是 呈现在实体中间 序列。这意味着打断 数据库到jdo(或 jpa)该实体的客户端数据流。
  3. 因此,如何在xml架构中指定只读字段元素?

    ...和(羞怯)我可以问,如何指定一个隐藏的字段?

1 个答案:

答案 0 :(得分:2)

您可以使用XML Schema annotations为您的申请提供此类信息。这很尴尬,但它可以奏效。 有点像:

<xs:element name="heading" type="xs:string">
    <xs:annotation>
        <xs:appinfo>
            <readOnly>true</readOnly>
        </xs:appinfo>
    </xs:annotation>
 </xs:element>