定制的XSD文件

我使用一个xsd文件来生成c#类,比如来自microsoft的xsd.exe。 我也从同一个xsd文件生成WPF表单。 在某些情况下,我需要在我的xs:element标签中定义自定义属性。 我使用这个属性来生成我的生成器来管理我的WPF表单中的某些功能。

我想要的是一些“高级”xsd文件,其中某些元素具有一些自定义属性。 它应该对任何xsd解析器都有效。

像myCutomAttribute一样:

<xs:element name="mycustomName" type="someComplexType" myCutomAttribute="generateIndex">

我试图扩展xsd文件与外部名称空间,但我不知道如何使其可验证。 我将名称空间generatorTools添加为gt。

<xs:element name="mycustomName" type="someComplexType" gt:myCutomAttribute="generateIndex">

这是应该扩展的xsd:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" 
xmlns:ns1="http://www.mycompany.com" 
targetNamespace="http://www.mycompany.com" elementFormDefault="qualified" attributeFormDefault="unqualified" vc:minVersion="1.1">
<xs:attribute name="myCutomAttribute" type="ns1:functions" />
<xs:simpleType name="functions">
    <xs:restriction base="xs:string">
        <xs:enumeration value="generateIndex"/>
        <xs:enumeration value="someOtherEntry"/>
    </xs:restriction>
</xs:simpleType>

事情是,如果我输入属性gt:myCustomAttribute的权利,它的作品。 gt:myCustomAttribute的值将通过名为“functions”的extenal simpletype中的枚举进行验证。 但是,如果我得到了输入错误,该属性将被接受任何值。 但为什么? 怎么做才能得到验证错误?

有效:

<xs:element name="mycustomName" type="someComplexType" gt:myCutomAttribute="generateIndex">
<xs:element name="mycustomName" type="someComplexType" gt:myCutomAttribute="someOtherEntry">

无效:

<xs:element name="mycustomName" type="someComplexType" gt:myCutomAttribute="xyz123">

这是有效的,但为什么?:

<xs:element name="mycustomName" type="someComplexType" gt:myMissspelledAttribute="xyz123">

任何想法,任何解决方案或即将完成错误? 感谢帮助

PS .:英语不是我最好的语言。 ;)


希望我能够理解你所遇到的问题。 如果您要验证另一个属性,例如myMissspelledAttribute就像您的情况一样,您需要将必要的自定义属性添加到您的模式<xs:attribute name="myMissspelledAttribute" type="ns1:functions"/>

模式的示例如下所示

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" xmlns:ns1="http://www.mycompany.com"
           targetNamespace="http://www.mycompany.com" elementFormDefault="qualified" attributeFormDefault="unqualified" vc:minVersion="1.1">
    <xs:attribute name="myCutomAttribute" type="ns1:functions"/>
    <xs:attribute name="myMissspelledAttribute" type="ns1:functions"/>
    <xs:simpleType name="functions">
        <xs:restriction base="xs:string">
            <xs:enumeration value="generateIndex"/>
            <xs:enumeration value="someOtherEntry"/>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>
链接地址: http://www.djcxy.com/p/34307.html

上一篇: Customized XSD File

下一篇: SOAP Response in WCF