Генерация классов C # из XSD с атрибутами - PullRequest
0 голосов
/ 07 ноября 2018

Мне нужно оказать поддержку старому проекту, и я не особо разбираюсь в xsd. В рамках проекта запустите xsd.exe для файла DataSet.xsd и сгенерируйте файл DataSet.cs, который включает в себя измененные классы c #.

Мне нужен флаг или атрибут для свойств genarated классов. Я добавляю новый атрибут в файл xsd с именем "intradaySupport" . И я пробую как атрибут и аннотацию, как на рисунке ниже, но сгенерированный класс в DataSet.cs есть отметка с "intradaySupport" .

Как мне обновить мой файл DataSet.xsd, чтобы окончательно сгенерированные классы были помечены флагом или атрибутом.

enter image description here

enter image description here

Полный контент, привязанный по ссылке, просто поместите контент в указанные файлы и запустите xsd

CDBDataSet.xsd https://pastebin.com/e0DPAxgb
CustomFields.xsd https://pastebin.com/ScS3whrY

enter code here

1 Ответ

0 голосов
/ 07 ноября 2018

Если вы хотите создать атрибут в вашем xsd, вы должны указать <xs:attribute name="intradaySupport" type="xs:boolean" use="required"/> в вашем xsd. Он должен быть расположен сразу после xs: sequence:

            <xs:element name="AccountType">
                <xs:complexType>
                    <xs:sequence>                          
                        <xs:element name="Account_x0020_type" type="string12" minOccurs="0"  />
                        <xs:element name="Description" type="string40" minOccurs="0" >
                        ...
                        <xs:element name="Not_x0020_used" type="string1" minOccurs="0" />
                    </xs:sequence>
                    <xs:attribute name="intradaySupport" type="xs:boolean" use="required"/>
                </xs:complexType>
            </xs:element>
            ...

используя xsd.exe / набор данных, он сгенерирует логический столбец columnintradaySupport в вашем наборе данных:

[global::System.Serializable()]
[global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")]
public partial class AccountTypeDataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable {

    private global::System.Data.DataColumn columnintradaySupport;

    private global::System.Data.DataColumn columnAccount_type;
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...