Por alguna razón, la herramienta MS .Net (v3.5) - xsd.exe no genera tipos cuando no se usan dentro de ningún elemento..Net herramienta xsd.exe no genera todos los tipos
p. Ej.
XSD archivo (me tiró en el elemento complejo para evitar esta advertencia - "Advertencia:. No puede generar clases porque no se encontraron elementos de nivel superior con tipo complejo"):
<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://tempuri.org/XMLSchema.xsd"
elementFormDefault="qualified"
xmlns="http://tempuri.org/XMLSchema.xsd"
xmlns:mstns="http://tempuri.org/XMLSchema.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:simpleType name="EnumTest">
<xs:restriction base="xs:string">
<xs:enumeration value="item1" />
<xs:enumeration value="item2" />
<xs:enumeration value="item3" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="myComplexType">
<xs:attribute name="Name" use="required" type="xs:string"/>
</xs:complexType>
<xs:element name="myElem" type="myComplexType"></xs:element>
</xs:schema>
Cuando corro esta a través xsd.exe usando
xsd/c xsdfile.xsd
no veo EnumTest en el archivo generado cs.
Nota; Aunque no utilizo la enumeración aquí, pero en mi proyecto real, tengo casos como este en los que enviamos el valor de cadena de enum como salida.
¿Cómo puedo forzar a la herramienta xsd a incluir esto? ¿O debería cambiar a alguna otra herramienta?
trabajo en Visual Studio 2008.
Su simpleType no es utilizado por ningún elemento ... Se usa, a continuación, inténtelo de nuevo. –
¡supongo que no has leído mi publicación por completo! – Mrchief
Leí tu publicación. Pero si no hay ningún elemento que use el tipo, entonces el sistema no definirá un tipo. Agregue y luego vea qué hace. (Es una cosa de optimización ...) –