【发布时间】:2016-04-01 18:06:06
【问题描述】:
客户要求(我无法理解)我们向他发送 XML 文件,其中部分包含:
<ANNEAL>
<CHARACTERISTIC NAME="CHARGE">
<VALUE>23</VALUE>
</CHARACTERISTIC>
<CHARACTERISTIC NAME="POSITION">
<VALUE>3</VALUE>
</CHARACTERISTIC>
<CHARACTERISTIC NAME="REANNEAL_HOLD">
<VALUE>N</VALUE>
</CHARACTERISTIC>
<CHARACTERISTIC NAME="FINAL_COLDSPOT">
<VALUE></VALUE>
</CHARACTERISTIC>
<CHARACTERISTIC NAME="FINAL_HOTSPOT">
<VALUE/>
</CHARACTERISTIC>
</ANNEAL>
我正在尝试创建一个名为 CharacteristicType 的 XSD 类型,它需要以下内容:
- 元素的名称将是
CHARACTERISTIC - 元素将没有值
- 该元素将只有一个名为
NAME的字符串类型的属性 - 该元素将有一个名为
VALUE的字符串类型的子元素 -
VALUE子元素可能有也可能没有值。
我还没有创建 Visual Studio 喜欢的类型定义。这是我最近的尝试:
<xs:complexType name="DateCharacteristicType">
<xs:sequence>
<xs:element name="cname">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:dateTime" name="VALUE"/>
</xs:sequence>
<!--<xs:restriction base="xs:string">
<xs:enumeration value="CHARACTERISTIC"/>
</xs:restriction>-->
<xs:attribute type="NonEmptyString" name="NAME"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
我确定我必须使用单元素枚举来将外部元素的名称限制为CHARACTERISTIC。还是我会?想一想,这必须适用于元素的值,而不是它的名称。我想我将不得不在要求 1 上妥协,并且必须自己命名每个元素 CHARACTERISTIC。
【问题讨论】: