我正在为来自外部系统的xml创建一个模式。我有模拟这种类型的问题:如何在xml模式中对此进行建模?
<main>
...
<Foo TYPE="Numeric"/>
<Bar TYPE="Numeric">12.0</Bar>
...
</main>
我已创建一个类型扩展双:
<xs:complexType name="myNumeric">
<xs:simpleContent>
<xs:extension base="xs:double">
<xs:attribute name="TYPE" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
....
<xs:element name="Foo" type="myNumeric" />
<xs:element name="Bar" type="myNumeric" />
然而,这还不够好,当我尝试验证我得到一个错误抱怨的架构:''不是'double'的有效值。
任何提示?
谢谢
谢谢,这是伟大的,但它意味着我需要修改输入XML。我不是在控制xml代,我想避免在可能的情况下对其进行预处理。 –
然后我想不出如何做到这一点,而不是延迟打印到下游进程,并将所有内容都作为xs:字符串。这不是一个好的解决方案。 –