我已经阅读了 W3C 文档,阅读了教程,阅读了这里的各种帖子,但仍然不明白为什么以下架构定义在 Visual Studio 2010(版本 10.0.4.0219.1)中被标记为无效。
将不胜感激可能提供的任何帮助。这是演示该问题的示例架构定义。
<?xml version="1.0" encoding="utf-8"?>
<xs:schema
attributeFormDefault="unqualified"
elementFormDefault="qualified"
targetNamespace="http://www.tempuri.org/WhyDoesThisFail"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:why="http://www.tempuri.org/WhyDoesThisFail">
<!-- Write a valid XSD to describe the following:
<SomeField alias="SomeAlias">1234.5678</SomeField>
-->
<xs:attributeGroup name="FieldAlias">
<xs:attribute name="alias" type="xs:string" />
</xs:attributeGroup>
<xs:complexType name="DecimalWithAlias">
<xs:simpleContent>
<xs:restriction base="xs:decimal">
<xs:attributeGroup ref="why:FieldAlias" />
</xs:restriction>
</xs:simpleContent>
</xs:complexType>
<xs:element name="SomeField" type="why:DecimalWithAlias"/>
</xs:schema>
Visual Studio 中显示的消息(xs:restriction 上的蓝色下划线)是:
未定义的 complexType "http://www.w3.org/2001/XMLSchema:decimal" 用作复杂类型限制的基础。
其他人表示必须添加 simpleType 或 complexType 来定义基本类型的限制——但我无法做到这一点,而不会收到同样的错误消息。
感谢你的帮助。