Visual studio 为什么VisualStudio 2017会告诉我“…”;。。。元素在此上下文中不受支持;?
MCVE:Visual studio 为什么VisualStudio 2017会告诉我“…”;。。。元素在此上下文中不受支持;?,visual-studio,xsd,Visual Studio,Xsd,MCVE: 我不明白它为什么抱怨。你知道我到底做错了什么吗 请注意,我的目标是编写一个XML文件中只能有一个VersionSchema对象。您从编程语言的角度考虑这一点,您可以通过将字段作为容器中的元素添加到类或类型中 对于XML模式,这是不正确的。原因是在其最严格的定义中,XML是顺序相关的 您可以自己编写一个接受以下XML的模式 <?xml version="1.0" encoding="UTF-8"?> <xsd:schema targetNamespace
我不明白它为什么抱怨。你知道我到底做错了什么吗
请注意,我的目标是编写一个XML文件中只能有一个VersionSchema对象。您从编程语言的角度考虑这一点,您可以通过将字段作为容器中的元素添加到类或类型中 对于XML模式,这是不正确的。原因是在其最严格的定义中,XML是顺序相关的 您可以自己编写一个接受以下XML的模式
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
targetNamespace="http://versionschema.org/xmlns/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:vs="http://versionschema.org/xmlns/"
elementFormDefault="unqualified"
attributeFormDefault="unqualified">
<xsd:element name="VersionSchema" type="vs:VersionSchema"/>
<xsd:complexType name="VersionSchema" minOccurs="1" maxOccurs="1">
<!-- VS says: "minOccurs and maxOccurs not allowed ^^^^ -->
<xsd:element name="Field" minOccurs="1" maxOccurs="unbounded">
<!-- ^^^ VS says: The 'http://www.w3.org/2001/XMLSchema:element' is not supported in this context -->
</xsd:element>
</xsd:complexType>
</xsd:schema>
相关章节将包括和。它说
复杂类型定义架构组件的XML表示形式
是
元素信息项。[…]内容:
请注意,要将
放入复杂类型中,您必须使用complexContent
、组
或模型组元素,如all
、choice
或sequence
。这与不能包含
的complexContent
相同,但只能包含扩展名
,扩展名只能包含
(annotation?, (simpleContent | complexContent | (openContent?, (group| all | choice | sequence)?, ((attribute | attributeGroup)*, anyAttribute?), assert*)))
[…]模型组有三种类型:
序列(元素信息项与中的粒子匹配)
顺序顺序);连接(元素信息项匹配)
粒子,以任何顺序排列);析取(元素信息)
项目匹配一个或多个粒子)。模型群,一种术语
[…]指定顺序(序列)、析取(选择)或
{particles}的合取(all)解释。这反过来
确定元素信息项[子项]是否已验证
模型组必须:
(顺序)按顺序对应于指定的{粒子};
(选择)正好对应于指定的{粒子}中的一个;(全部)
对应于指定的{particles}。这些元素可以以任何形式出现
秩序
即使在“模型组”部分中有点令人困惑,模型组本身也只能承载以下内容
(annotation?, openContent?, ((group | all | choice | sequence)?, ((attribute | attributeGroup)*, anyAttribute?), assert*))
这可以归结为当您想使用
时,必须使用all、choice和sequence
- 全部:(注释?,(元素|任何|组)*)
- 选择:(注释?,(元素|组|选择|序列|任意)*)
- 序列:(注释?,(元素|组|选择|序列|任意)*)
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
targetNamespace="http://versionschema.org/xmlns/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:vs="http://versionschema.org/xmlns/"
elementFormDefault="unqualified"
attributeFormDefault="unqualified">
<xsd:element name="VersionSchema" type="vs:VersionSchema"/>
<xsd:complexType name="VersionSchema">
<xsd:sequence minOccurs="1" maxOccurs="1">
<xsd:element name="Field" minOccurs="1" maxOccurs="unbounded"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
(annotation?, (simpleContent | complexContent | (openContent?, (group| all | choice | sequence)?, ((attribute | attributeGroup)*, anyAttribute?), assert*)))
(annotation?, openContent?, ((group | all | choice | sequence)?, ((attribute | attributeGroup)*, anyAttribute?), assert*))
(annotation?, (all | choice | sequence)?)