在XSD文件中使用Guid类型的正确方法是什么?

在XSD文件中使用Guid类型的正确方法是什么?,xsd,guid,xsd.exe,Xsd,Guid,Xsd.exe,我有一个.xsd文件,用于使用Visual Studio中的xsd.exe工具生成代码。 某些类成员是GUID,xsd.exe工具会给出2个警告: 命名空间“”不可在此架构中引用。 未声明类型“” Guid类型被识别,因为生成的C#文件有效且有效。 有人知道如何摆脱这些警告吗 要验证XSD并将类成员生成为System.Guid,正确的语法是什么?该wsdl命名空间扩展页似乎已被删除,因此无法找到所需的类型信息。引文来源: 谢谢大家,, 我找到了如何删除警告 如上所述,wsdl名称空间要么已被删除

我有一个.xsd文件,用于使用Visual Studio中的xsd.exe工具生成代码。 某些类成员是GUID,xsd.exe工具会给出2个警告:

命名空间“”不可在此架构中引用。 未声明类型“”

Guid类型被识别,因为生成的C#文件有效且有效。 有人知道如何摆脱这些警告吗


要验证XSD并将类成员生成为System.Guid,正确的语法是什么?

该wsdl命名空间扩展页似乎已被删除,因此无法找到所需的类型信息。

引文来源:

谢谢大家,, 我找到了如何删除警告

如上所述,wsdl名称空间要么已被删除,要么从未存在过。xsd.exe工具似乎在内部知道Guid定义,但无法验证xsd模式

如前所述,验证包含guid的模式的唯一方法是(重新)在模式中定义该类型。这里的技巧是将Guid类型添加到相同的“”命名空间。这样,xsd.exe将在和System.Guid之间进行正确的关联

我为guid类型创建了一个新的xsd文件:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://microsoft.com/wsdl/types/" >
    <xs:simpleType name="guid">
        <xs:annotation>
            <xs:documentation xml:lang="en">
                The representation of a GUID, generally the id of an element.
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:pattern value="\{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\}"/>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>

谢谢,据我所知,我必须为Guid类型汇总我自己的模式,以复制wsdl命名空间的功能。这是C#代码,但是,如何将其放入XSD文件中,以便XSD.exe可以读取它?我认为,您不能以这种方式扩展XSD.exe。但是,您可能能够使用.NET生成模式,而不需要基于此代码段的xsd.exe。或者,其他xsd.exe替代方案:我将在谷歌上搜索完整的.NET实现。除了
xmlns:wsdl=”之外,我还必须使用
”http://microsoft.com/wsdl/types/“
在我的架构中进行验证。我点击了
错误:引用类型{http://microsoft.com/wsdl/types/}试图使用scalaxb.org/online将.Net团队wsdl生成到scala中时未找到guid
。我刚刚将这个答案中的xsd添加到解决方案中,它生成了所有scala类。谢谢
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://microsoft.com/wsdl/types/" >
    <xs:simpleType name="guid">
        <xs:annotation>
            <xs:documentation xml:lang="en">
                The representation of a GUID, generally the id of an element.
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:pattern value="\{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\}"/>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>
xsd.exe myschema.xsd guid.xsd /c