首页 > 解决方案 > 不允许 XSD 简单架构元素

问题描述

我正在尝试为我的 XML 文档构建 XSD 架构。这很简单,但即使我坚持写它。调试器说在第 5 行 (<xs:element name="database">) 和第 15 行 (<xs:element name="log">) xs:element 在此上下文中不受支持。我错过了什么?

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="config">
        <xs:complexType>
            <xs:element name="database">
                <xs:complexType>
                    <xs:element name="SqlServerName" type="xs:string" />
                    <xs:element name="DbInstance" type="xs:string"/>
                    <xs:element name="DbPort" type="xs:positiveInteger" />
                    <xs:element name="UseTrustedConnection" type="xs:bolean" />
                    <xs:element name="DbUser" type="xs:string" />
                    <xs:element name="DbPassword" type="xs:string" />
                </xs:complexType>
            </xs:element>
        <xs:element name="log">
            <xs:complexType>
                <xs:element name="LogFile" type="xs:string" />
            </xs:complexType>
        </xs:element>
      </xs:complexType>
    </xs:element>
</xs:schema>

XML 应如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:noNamespaceSchemaLocation="config.xsd">
    <database>
        <SqlServerName>MyServer</SqlServerName>
        <DbInstance>SQLEXPRESS</DbInstance>
        <DbPort>1433</DbPort>
        <UseTrustedConnection>true</UseTrustedConnection>
    <DbUser></DbUser>
        <DbPassword></DbPassword>
    </database>
    <log>
        <LogFile>error.log</LogFile>
    </log>
</config>

泰。

标签: xmltreexsdtags

解决方案


Martijn 对我的问题的评论包含正确的答案和对我所犯错误的附加提示。谢了哥们。

在 xs:complexType 之后,您需要指定它是 xs:sequence、xs:all 还是 xs:choice。而 xs:boolean 应该是 xs:boolean


推荐阅读