Я генерирую файл класса ac # из предоставленного мне XSD.Я могу сделать это без проблем, если использую только оригинальный родной XSD.Однако я хотел бы внести изменения в XSD, добавив свое собственное пространство имен, и я хотел бы передать вновь измененный XSD через генератор, чтобы создать файл класса, который содержит предоставленные мне определения классов, а также определения, которые я добавил.
Итак, насколько я понимаю, мне нужно добавить пространство имен, а также новый атрибут в этом пространстве имен.У меня есть доступ и возможность изменить исходный XSD или добавить свой собственный xsd.
Я посмотрел этот пост, похожий на Расширить XSD с помощью пользовательских атрибутов?
Пример моей попытки ниже.В моей попытке я пытаюсь добавить атрибут «Влажность» к элементу DeviceInfo в пространстве имен «mns».В настоящее время это показывает, что ошибка «mns: attribute» элемент не поддерживается в этом контексте.
test.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://MyNamespace.com"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="DeviceInfo">
<xs:complexType>
<xs:attribute name="Humidity" type="xs:float" />
</xs:complexType>
</xs:element>
</xs:schema>
main.xsd
<xs:schema targetNamespace="http://www.CIP4.org/JDFSchema_2_0"
xmlns="http://www.CIP4.org/JDFSchema_2_0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mns="http://MyNamespace.com"
xsi:schemaLocation="http://MyNamespace.com ./test.xsd"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:element name="DeviceInfo">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="Activity"/>
<xs:element maxOccurs="2" minOccurs="0" ref="FileSpec"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="JobPhase"/>
</xs:sequence>
<xs:attribute name="CounterUnit" type="NMTOKEN" use="optional"/>
<mns:Humidity value="0"/>
</xs:schema>
В настоящее время это возвращает, что элемент 'mns: влажность' не поддерживается в этом контексте.
Кто-нибудь может объяснить, как я могу вставить это в сложный тип?
Я также попытался поместить mns: Влажность в том же теге, что и deviceInfo
<xs:element name="DeviceInfo mns:Humidity="0">
Отправка этого через генератор классов произвела два отдельных экземпляра «DeviceInfo», где второй добавил 1. 1. 1024 *
Как я могу вставить егов complexType с пространством имен?