|
Создать пустой ОбъектXDTO по схеме | ☑ | ||
---|---|---|---|---|
0
oleg_km
16.09.14
✎
18:08
|
Никак не могу въехать. Есть файл схемы, допустим ЭСФ:
<?xml version="1.0" encoding="windows-1251" ?> - <!-- edited with XMLSpy v2006 rel. 3 U (http://www.altova.com) by В. Г. Бессалый (GNIVC FNS RF) --> - <!-- edited with XMLSPY v2004 rel. 4 U (http://www.xmlspy.com) by Home (Home) --> - <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:usch="http://www.unisoftware.ru/schematron-extensions" elementFormDefault="qualified" attributeFormDefault="unqualified"> - <xs:element name="Файл"> - <xs:annotation> <xs:documentation>Файл обмена</xs:documentation> </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element name="СвУчДокОбор"> - <xs:annotation> <xs:documentation>Сведения об участниках электронного документооборота</xs:documentation> </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element name="СвОЭДОтпр"> - <xs:annotation> <xs:documentation>Сведения об операторе электронного документооборота отправителя</xs:documentation> </xs:annotation> - <xs:complexType> - <xs:attribute name="НаимОрг" use="required"> - <xs:annotation> <xs:documentation>Наименование</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:minLength value="1" /> <xs:maxLength value="1000" /> </xs:restriction> </xs:simpleType> </xs:attribute> - <xs:attribute name="ИННЮЛ" type="ИННЮЛТип" use="required"> - <xs:annotation> <xs:documentation>ИНН</xs:documentation> </xs:annotation> </xs:attribute> - <xs:attribute name="ИдЭДО" use="required"> - <xs:annotation> <xs:documentation>Идентификатор оператора ЭДО</xs:documentation> <xs:documentation>Идентификатор оператора электронного оборота счетами-фактурами (оператор ЭДО), услугами которого пользуется покупатель (продавец), символьный трехзначный код. В значении идентификатора допускаются символы латинского алфавита a–z, цифры 0–9, знаки «@», «.», «-». Значение идентификатора регистронезависимо. При включении оператора ЭДО в сеть доверенных операторов ЭДО ФНС России, идентификатор присваивается Федеральной налоговой службой</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:length value="3" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> </xs:sequence> - <xs:attribute name="ИдОтпр" use="required"> - <xs:annotation> <xs:documentation>Идентификатор участника документооборота, отпустившего товар</xs:documentation> <xs:documentation>Значение элемента представляется в виде ИдОЭДО||КодПрод(Пок), где: ИдОЭДО - идентификатор оператора электронного оборота счетами-фактурами (оператор ЭДО), услугами которого пользуется покупатель (продавец), символьный трехзначный код. При включении оператора ЭДО в сеть доверенных операторов ЭДО ФНС России, идентификатор присваивается Федеральной налоговой службой; КодПрод(Пок) - код продавца (покупателя) - уникальный код участника, присваиваемый оператором электронного документооборота, услугами которого пользуется покупатель (продавец), длина кода продавца (покупателя) не более 43 символов</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:minLength value="4" /> <xs:maxLength value="46" /> </xs:restriction> </xs:simpleType> </xs:attribute> - <xs:attribute name="ИдПок" use="required"> - <xs:annotation> <xs:documentation>Идентификатор участника документооборота, которому отпущен товар</xs:documentation> <xs:documentation>Значение элемента представляется в виде ИдОЭДО||КодПрод(Пок), где: ИдОЭДО - идентификатор оператора электронного оборота счетами-фактурами (оператор ЭДО), услугами которого пользуется покупатель (продавец), символьный трехзначный код. При включении оператора ЭДО в сеть доверенных операторов ЭДО ФНС России, идентификатор присваивается Федеральной налоговой службой; КодПрод(Пок) - код продавца (покупателя) - уникальный код участника, присваиваемый оператором электронного документооборота, услугами которого пользуется покупатель (продавец), длина кода продавца (покупателя) не более 43 символов</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:minLength value="4" /> <xs:maxLength value="46" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> - <xs:element name="Документ"> - <xs:annotation> <xs:documentation>Счет-фактура, применяемый при расчетах по налогу на добавленную стоимость</xs:documentation> </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element name="СвСчФакт"> - <xs:annotation> <xs:documentation>Сведения о счете-фактуре</xs:documentation> </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element name="ИспрСчФ" minOccurs="0"> - <xs:annotation> <xs:documentation>Исправление (строка 1а)</xs:documentation> </xs:annotation> - <xs:complexType> - <xs:attribute name="НомИспрСчФ" use="required"> - <xs:annotation> <xs:documentation>Исправление: № (Строка 1а)</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:minLength value="1" /> <xs:maxLength value="3" /> </xs:restriction> </xs:simpleType> </xs:attribute> - <xs:attribute name="ДатаИспрСчФ" type="ДатаТип" use="required"> - <xs:annotation> <xs:documentation>Исправление: Дата (Строка 1а)</xs:documentation> <xs:documentation>Дата в формате ДД.ММ.ГГГГ</xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> </xs:element> - <xs:element name="СвПрод" type="СвПродПокТип"> - <xs:annotation> <xs:documentation>Сведения о продавце (строки 2, 2а, 2б)</xs:documentation> </xs:annotation> </xs:element> - <xs:element name="ГрузОт" minOccurs="0"> - <xs:annotation> <xs:documentation>Сведения о грузоотправителе</xs:documentation> </xs:annotation> - <xs:complexType> - <xs:choice> - <xs:element name="ГрузОтпр" type="СвГрузОтпрПолТип"> - <xs:annotation> <xs:documentation>Грузоотправитель и его адрес (строка 3)</xs:documentation> </xs:annotation> </xs:element> - <xs:element name="ОнЖе"> - <xs:annotation> <xs:documentation>Указано "он же" (строка 3)</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:length value="5" /> <xs:enumeration value="он же" /> </xs:restriction> </xs:simpleType> </xs:element> </xs:choice> </xs:complexType> </xs:element> - <xs:element name="ГрузПолуч" type="СвГрузОтпрПолТип" minOccurs="0"> - <xs:annotation> <xs:documentation>Грузополучатель и его адрес (строка 4)</xs:documentation> </xs:annotation> </xs:element> - <xs:element name="СвПРД" minOccurs="0" maxOccurs="unbounded"> - <xs:annotation> <xs:documentation>Сведения о платежно-расчетном документе (строка 5)</xs:documentation> </xs:annotation> - <xs:complexType> - <xs:attribute name="НомерПРД" use="required"> - <xs:annotation> <xs:documentation>Номер платежно-расчетного документа</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:minLength value="1" /> <xs:maxLength value="20" /> </xs:restriction> </xs:simpleType> </xs:attribute> - <xs:attribute name="ДатаПРД" type="ДатаТип" use="required"> - <xs:annotation> <xs:documentation>Дата составления платежно-расчетного документа</xs:documentation> <xs:documentation>Дата в формате ДД.ММ.ГГГГ</xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> </xs:element> - <xs:element name="СвПокуп" type="СвПродПокТип"> - <xs:annotation> <xs:documentation>Сведения о покупателе (строки 6, 6а, 6б)</xs:documentation> </xs:annotation> </xs:element> - <xs:element name="ИнфПол" minOccurs="0"> - <xs:annotation> <xs:documentation>Информационное поле документа</xs:documentation> </xs:annotation> - <xs:complexType> - <xs:attribute name="ТекстИнф" use="optional"> - <xs:annotation> <xs:documentation>Текстовая информация</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:minLength value="0" /> <xs:maxLength value="2000" /> </xs:restriction> </xs:simpleType> </xs:attribute> - <xs:attribute name="ИдФайлИнфПол" use="optional"> - <xs:annotation> <xs:documentation>Идентификатор файла информационного поля</xs:documentation> <xs:documentation>GUID. Указывается идентификатор файла, содержащего информацию обмена</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:length value="36" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> </xs:sequence> - <xs:attribute name="НомерСчФ" use="required"> - <xs:annotation> <xs:documentation>Порядковый номер счета-фактуры (Строка 1)</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:minLength value="1" /> <xs:maxLength value="256" /> </xs:restriction> </xs:simpleType> </xs:attribute> - <xs:attribute name="ДатаСчФ" type="ДатаТип" use="required"> - <xs:annotation> <xs:documentation>Дата составления счета-фактуры (Строка 1)</xs:documentation> <xs:documentation>Дата в формате ДД.ММ.ГГГГ</xs:documentation> </xs:annotation> </xs:attribute> - <xs:attribute name="КодОКВ" type="ОКВТип" use="required"> - <xs:annotation> <xs:documentation>Валюта: Код (Строка 7)</xs:documentation> <xs:documentation>Код по Общероссийскому классификатору валют</xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> </xs:element> - <xs:element name="ТаблСчФакт"> - <xs:annotation> <xs:documentation>Сведения таблицы счета-фактуры</xs:documentation> </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element name="СведТов" maxOccurs="unbounded"> - <xs:annotation> <xs:documentation>Сведения о товаре (работе, услуге)</xs:documentation> </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element name="Акциз" type="СумАкцизТип"> - <xs:annotation> <xs:documentation>В том числе сумма акциза (Графа 6)</xs:documentation> </xs:annotation> </xs:element> - <xs:element name="НалСт"> - <xs:annotation> <xs:documentation>Налоговая ставка (Графа 7)</xs:documentation> </xs:annotation> - <xs:complexType> - <xs:attribute name="НалСтВел" use="required"> - <xs:annotation> <xs:documentation>Налоговая ставка - величина</xs:documentation> <xs:documentation>Для величины налоговой ставки, принимающей значения 0 | 10 | 18 | 20, тип налоговой ставки (НалСтТип) - процент. Для величин налоговой ставки, принимающей значения 10/110 | 18/118, НалСтТип=дробь. Для величины налоговой ставки, принимающей значение "безНДС", НалСтТип=текст</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:maxLength value="7" /> <xs:minLength value="1" /> <xs:enumeration value="0" /> <xs:enumeration value="10" /> <xs:enumeration value="18" /> <xs:enumeration value="20" /> <xs:enumeration value="10/110" /> <xs:enumeration value="18/118" /> <xs:enumeration value="без НДС" /> </xs:restriction> </xs:simpleType> </xs:attribute> - <xs:attribute name="НалСтТип" use="required"> - <xs:annotation> <xs:documentation>Тип налоговой ставки</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:maxLength value="7" /> <xs:minLength value="5" /> <xs:enumeration value="процент" /> <xs:enumeration value="дробь" /> <xs:enumeration value="текст" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> - <xs:element name="СумНал" type="СумНДСТип"> - <xs:annotation> <xs:documentation>Сумма налога, предъявляемая покупателю (Графа 8)</xs:documentation> </xs:annotation> </xs:element> - <xs:element name="КодПроисх" type="ОКСМТип" minOccurs="0" maxOccurs="unbounded"> - <xs:annotation> <xs:documentation>Цифровой код страны происхождения товара (Графа 10)</xs:documentation> </xs:annotation> </xs:element> - <xs:element name="НомерТД" minOccurs="0" maxOccurs="unbounded"> - <xs:annotation> <xs:documentation>Номер таможенной декларации (Графа11)</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:maxLength value="27" /> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> - <xs:attribute name="НомСтр" use="required"> - <xs:annotation> <xs:documentation>Номер строки таблицы</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:integer"> <xs:totalDigits value="6" /> </xs:restriction> </xs:simpleType> </xs:attribute> - <xs:attribute name="НаимТов" use="required"> - <xs:annotation> <xs:documentation>Наименование товара (описание выполненных работ, оказанных услуг), имущественного права (Графа 1)</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:minLength value="1" /> <xs:maxLength value="1000" /> </xs:restriction> </xs:simpleType> </xs:attribute> - <xs:attribute name="ОКЕИ_Тов" type="ОКЕИТип" use="optional"> - <xs:annotation> <xs:documentation>Код единицы измерения (Графа 2)</xs:documentation> <xs:documentation>Код по Общероссийскому классификатору единиц измерения</xs:documentation> </xs:annotation> </xs:attribute> - <xs:attribute name="КолТов" use="optional"> - <xs:annotation> <xs:documentation>Количество (объем) (Графа 3)</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:decimal"> <xs:totalDigits value="18" /> <xs:fractionDigits value="3" /> </xs:restriction> </xs:simpleType> </xs:attribute> - <xs:attribute name="ЦенаТов" use="optional"> - <xs:annotation> <xs:documentation>Цена (тариф) за единицу измерения (Графа 4)</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:decimal"> <xs:totalDigits value="17" /> <xs:fractionDigits value="2" /> </xs:restriction> </xs:simpleType> </xs:attribute> - <xs:attribute name="СтТовБезНДС" use="optional"> - <xs:annotation> <xs:documentation>Стоимость товаров (работ, услуг), имущественных прав без налога - всего (Графа 5)</xs:documentation> <xs:documentation>Обязателен, кроме случаев по п.4 Правил заполнения счета-фактуры, применяемого при расчетах по налогу на добавленную стоимость</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:decimal"> <xs:totalDigits value="17" /> <xs:fractionDigits value="2" /> </xs:restriction> </xs:simpleType> </xs:attribute> - <xs:attribute name="СтТовУчНал" use="required"> - <xs:annotation> <xs:documentation>Стоимость товаров (работ, услуг), имущественных прав с налогом - всего (Графа 9)</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:decimal"> <xs:totalDigits value="17" /> <xs:fractionDigits value="2" /> </xs:restriction> </xs:simpleType> </xs:attribute> - <xs:attribute name="ИнфПолСтр" use="optional"> - <xs:annotation> <xs:documentation>Информационное поле строки</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:minLength value="0" /> <xs:maxLength value="2000" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> - <xs:element name="ВсегоОпл"> - <xs:annotation> <xs:documentation>Реквизиты строки Всего к оплате</xs:documentation> </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element name="СумНалВсего" type="СумНДСТип"> - <xs:annotation> <xs:documentation>Всего к оплате, Сумма налога, предъявляемая покупателю (строка Всего к оплате/Графа 8)</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> - <xs:attribute name="СтТовБезНДСВсего" use="optional"> - <xs:annotation> <xs:documentation>Всего к оплате, Стоимость товаров (работ, услуг), имущественных прав без налога - всего (строка Всего к оплате/Графа 5)</xs:documentation> <xs:documentation>Обязателен, кроме случаев по п.4 Правил заполнения счета-фактуры, применяемого при расчетах по налогу на добавленную стоимость</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:decimal"> <xs:totalDigits value="17" /> <xs:fractionDigits value="2" /> </xs:restriction> </xs:simpleType> </xs:attribute> - <xs:attribute name="СтТовУчНалВсего" use="required"> - <xs:annotation> <xs:documentation>Всего к оплате, Стоимость товаров (работ, услуг), имущественных прав с налогом - всего (строка Всего к оплате/Графа 9)</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:decimal"> <xs:totalDigits value="17" /> <xs:fractionDigits value="2" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> - <xs:element name="Подписант"> - <xs:annotation> <xs:documentation>Сведения о лице, подписывающем документ в электронном виде</xs:documentation> - <!-- Сведения о представителе присутствуют только если признак подписанта принимает значение 2 --> </xs:annotation> - <xs:complexType> - <xs:choice> - <xs:element name="ИП"> - <xs:annotation> <xs:documentation>Индивидуальный предприниматель</xs:documentation> </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element name="ФИО" type="ФИОТип"> - <xs:annotation> <xs:documentation>Фамилия, Имя, Отчество</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> - <xs:attribute name="ИННФЛ" type="ИННФЛТип" use="required"> - <xs:annotation> <xs:documentation>ИНН индивидуального предпринимателя</xs:documentation> </xs:annotation> </xs:attribute> - <xs:attribute name="СвГосРегИП" use="required"> - <xs:annotation> <xs:documentation>Реквизиты свидетельства о государственной регистрации ИП</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:maxLength value="100" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> - <xs:element name="ЮЛ"> - <xs:annotation> <xs:documentation>Организация</xs:documentation> </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element name="ФИО" type="ФИОТип"> - <xs:annotation> <xs:documentation>Фамилия, Имя, Отчество</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> - <xs:attribute name="ИННЮЛ" type="ИННЮЛТип" use="required"> - <xs:annotation> <xs:documentation>ИНН организации</xs:documentation> </xs:annotation> </xs:attribute> - <xs:attribute name="Должн" use="optional"> - <xs:annotation> <xs:documentation>Должность</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:maxLength value="128" /> <xs:minLength value="0" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> </xs:sequence> - <xs:attribute name="КНД" use="required"> - <xs:annotation> <xs:documentation>Код формы по КНД</xs:documentation> <xs:documentation>Код по Классификатору налоговой документации. 1115101 - Счет-фактура, применяемый при расчетах по налогу на добавленную стоимость</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="КНДТип"> <xs:enumeration value="1115101" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> </xs:sequence> - <xs:attribute name="ИдФайл" use="required"> - <xs:annotation> <xs:documentation>Идентификатор файла</xs:documentation> <xs:documentation>Содержит (повторяет) имя сформированного файла (без расширения)</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:minLength value="1" /> <xs:maxLength value="200" /> </xs:restriction> </xs:simpleType> </xs:attribute> - <xs:attribute name="ВерсПрог" use="optional"> - <xs:annotation> <xs:documentation>Версия передающей программы</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:maxLength value="40" /> <xs:minLength value="1" /> </xs:restriction> </xs:simpleType> </xs:attribute> - <xs:attribute name="ВерсФорм" use="required"> - <xs:annotation> <xs:documentation>Версия формата</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:minLength value="1" /> <xs:maxLength value="5" /> <xs:enumeration value="5.01" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> - <xs:complexType name="АдресТип"> - <xs:annotation> <xs:documentation>Сведения об адресе</xs:documentation> </xs:annotation> - <xs:choice> - <xs:element name="АдрРФ" type="АдрРФТип"> - <xs:annotation> <xs:documentation>Адрес местонахождения в Российской Федерации</xs:documentation> </xs:annotation> </xs:element> - <xs:element name="АдрИно" type="АдрИноТип"> - <xs:annotation> <xs:documentation>Адрес местонахождения за пределами Российской Федерации</xs:documentation> </xs:annotation> </xs:element> </xs:choice> </xs:complexType> - <xs:complexType name="АдрИноТип"> - <xs:annotation> <xs:documentation>Адрес за пределами Российской Федерации</xs:documentation> </xs:annotation> - <xs:attribute name="КодСтр" type="ОКСМТип" use="required"> - <xs:annotation> <xs:documentation>Код страны</xs:documentation> </xs:annotation> </xs:attribute> - <xs:attribute name="АдрТекст" use="required"> - <xs:annotation> <xs:documentation>Адрес</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:minLength value="1" /> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> - <xs:complexType name="АдрРФТип"> - <xs:annotation> <xs:documentation>Адрес в Российской Федерации</xs:documentation> </xs:annotation> - <xs:attribute name="Индекс" use="optional"> - <xs:annotation> <xs:documentation>Индекс</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:length value="6" /> <xs:pattern value="[0-9]{6}" /> </xs:restriction> </xs:simpleType> </xs:attribute> - <xs:attribute name="КодРегион" use="required"> - <xs:annotation> <xs:documentation>Код Региона</xs:documentation> <xs:documentation>Код по справочнику "Субъекты Российской Федерации" ФНС России</xs:documentation> </xs:annotation> - <xs:simpleType> <xs:restriction base="CCРФТип" /> </xs:simpleType> </xs:attribute> - <xs:attribute name="Район" use="optional"> - <xs:annotation> <xs:documentation>Район</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:minLength value="1" /> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:attribute> - <xs:attribute name="Город" use="optional"> - <xs:annotation> <xs:documentation>Город</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:maxLength value="50" /> <xs:minLength value="1" /> </xs:restriction> </xs:simpleType> </xs:attribute> - <xs:attribute name="НаселПункт" use="optional"> - <xs:annotation> <xs:documentation>Населенный пункт</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:minLength value="1" /> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:attribute> - <xs:attribute name="Улица" use="optional"> - <xs:annotation> <xs:documentation>Улица</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:minLength value="1" /> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:attribute> - <xs:attribute name="Дом" use="optional"> - <xs:annotation> <xs:documentation>Дом</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:minLength value="1" /> <xs:maxLength value="8" /> </xs:restriction> </xs:simpleType> </xs:attribute> - <xs:attribute name="Корпус" use="optional"> - <xs:annotation> <xs:documentation>Корпус</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:minLength value="1" /> <xs:maxLength value="8" /> </xs:restriction> </xs:simpleType> </xs:attribute> - <xs:attribute name="Кварт" use="optional"> - <xs:annotation> <xs:documentation>Квартира</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:minLength value="1" /> <xs:maxLength value="8" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> - <xs:complexType name="СвПродПокТип"> - <xs:annotation> <xs:documentation>Сведения о продавце (покупателе)</xs:documentation> </xs:annotation> - <xs:sequence> - <xs:element name="ИдСв"> - <xs:annotation> <xs:documentation>Идентификационные сведения</xs:documentation> </xs:annotation> - <xs:complexType> - <xs:choice> - <xs:element name="СвЮЛ"> - <xs:annotation> <xs:documentation>Сведения об организации</xs:documentation> </xs:annotation> - <xs:complexType> - <xs:attribute name="НаимОрг" use="required"> - <xs:annotation> <xs:documentation>Наименование</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:minLength value="1" /> <xs:maxLength value="1000" /> </xs:restriction> </xs:simpleType> </xs:attribute> - <xs:attribute name="ИННЮЛ" type="ИННЮЛТип" use="optional"> - <xs:annotation> <xs:documentation>ИНН</xs:documentation> <xs:documentation>Обязателен для лиц, состоящих на учете в налоговых органах</xs:documentation> </xs:annotation> </xs:attribute> - <xs:attribute name="КПП" type="КППТип" use="optional"> - <xs:annotation> <xs:documentation>КПП</xs:documentation> <xs:documentation>Обязателен для лиц, состоящих на учете в налоговых органах</xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> </xs:element> - <xs:element name="СвФЛ"> - <xs:annotation> <xs:documentation>Сведения об индивидуальном предпринимателе</xs:documentation> </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element name="ФИОИП" type="ФИОТип"> - <xs:annotation> <xs:documentation>Фамилия, имя, отчество</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> - <xs:attribute name="ИННФЛ" type="ИННФЛТип" use="optional"> - <xs:annotation> <xs:documentation>ИНН</xs:documentation> <xs:documentation>Обязателен для лиц, состоящих на учете в налоговых органах</xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> - <xs:element name="Адрес" type="АдресТип"> - <xs:annotation> <xs:documentation>Адрес</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> - <xs:complexType name="СвГрузОтпрПолТип"> - <xs:annotation> <xs:documentation>Сведения о грузоотправителе (грузополучателе)</xs:documentation> </xs:annotation> - <xs:sequence> - <xs:element name="НаимГОП"> - <xs:annotation> <xs:documentation>Наименование (ФИО)</xs:documentation> </xs:annotation> - <xs:complexType> - <xs:choice> - <xs:element name="НаимОрг"> - <xs:annotation> <xs:documentation>Наименование организации</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:minLength value="1" /> <xs:maxLength value="1000" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="ФИОИП" type="ФИОТип"> - <xs:annotation> <xs:documentation>Фамилия, имя, отчество индивидуального предпринимателя</xs:documentation> </xs:annotation> </xs:element> </xs:choice> </xs:complexType> </xs:element> - <xs:element name="Адрес" type="АдресТип"> - <xs:annotation> <xs:documentation>Адрес</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> - <xs:complexType name="СумАкцизТип"> - <xs:annotation> <xs:documentation>Сумма акциза</xs:documentation> </xs:annotation> - <xs:attribute name="СумАкциз" use="required"> - <xs:annotation> <xs:documentation>В том числе сумма акциза (Графа 6)</xs:documentation> <xs:documentation>Указывается сумма (17,2) | без акциза</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:minLength value="4" /> <xs:maxLength value="18" /> <xs:pattern value="\d{1,15}\.\d{2}" /> <xs:pattern value="без акциза" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> - <xs:complexType name="СумНДСТип"> - <xs:annotation> <xs:documentation>Сумма НДС</xs:documentation> </xs:annotation> - <xs:attribute name="СумНДС" use="required"> - <xs:annotation> <xs:documentation>Сумма НДС, предъявляемая покупателю (Графа 8)</xs:documentation> <xs:documentation>Указывается сумма (17,2) | без НДС | -</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> <xs:minLength value="1" /> <xs:maxLength value="18" /> <xs:pattern value="\d{1 |
|||
1
oleg_km
16.09.14
✎
18:10
|
Файл наверное зря запихал. Но не важен конкретный файл, подскажите подход. Как имея файл схемы создать пустой ОбъектXDTO, чтобы потом его заполнить и выгрузить в XML?
|
|||
2
Зойч
16.09.14
✎
18:12
|
Фабрика = СоздатьФабрикуXDTO(ИмяФайлаСхемы); //*.xsd
Фабрика.Создать(...) |
|||
3
oleg_km
16.09.14
✎
18:15
|
(2) Вот-вот, что впихнуть в Фабрика.Создать(...)?
Должен быть тип, как из фабрики получить тип? Вот для моего файла как получить тип, что указать в Фабрика.Тип(???, ???)? |
|||
4
Зойч
16.09.14
✎
18:16
|
Фабрика.Тип(...)
|
|||
5
Зойч
16.09.14
✎
18:16
|
Загрузи схему в 1с, там все увидишь сразу
|
|||
6
oleg_km
16.09.14
✎
18:23
|
(5) В 1С эта схема не грузится. Но по файлу XML может создать ОбъектXDTO. Как в таком случае создать пустой объект?
|
|||
7
Зойч
16.09.14
✎
18:26
|
Вот пространство ури http://purl.oclc.org/dsdl/schematron
Осталось имена типов найти |
|||
8
oleg_km
16.09.14
✎
18:35
|
(7) И как их найти? Я на этом и застопорился
|
|||
9
Armando
16.09.14
✎
23:05
|
В <xs:schema впиши атрибут targetNamespace="ON_SFAKT" тогда в 1C загрузится. Возможно придется типы подправить
|
|||
10
oleg_km
16.09.14
✎
23:36
|
(9) Т.е. для создания пустого объекта схема неполная? А почему тогда по существующему файлу объект создается функцией ПрочитатьXML?
|
|||
11
tridog
16.09.14
✎
23:46
|
(10) А какой тип у этого объекта?
|
|||
12
DmitrO
17.09.14
✎
00:15
|
Смотри КорневыеСвойства у схемы.
У них Тип. |
|||
13
oleg_km
17.09.14
✎
14:24
|
Получается так:
По заполненному XML получаю объект Фабрика = СоздатьФабрикуXDTO(текФайл); УдалитьФайлы(текФайл); текКаталог = ПолучитьИмяВременногоФайла() + "\"; СоздатьКаталог(текКаталог); ВыгрузитьФайлы(текКаталог); мсФайлы = НайтиФайлы(текКаталог, "*.xml"); чд = Новый ЧтениеXML; чд.ОткрытьФайл(мсФайлы[0].ПолноеИмя); обДанные = Фабрика.ПрочитатьXML(чд); чд.Закрыть(); Если запросить его тип, то выдает "http://www.w3.org/2001/XMLSchema", "anyType" А уже код Фабрика = СоздатьФабрикуXDTO(текФайл); УдалитьФайлы(текФайл); Рез = Фабрика.Создать(Фабрика.Тип("http://www.w3.org/2001/XMLSchema", "anyType")); Создает пустой объект без свойств. Почему в первом случае 1С понимает какие свойства есть в объекте, а во втором не понимает? |
|||
14
DmitrO
17.09.14
✎
14:56
|
потому что anyType - это специальный предопределенный тип, означающий "что угодно", в том числе и любой комплексный тип.
|
|||
15
oleg_km
17.09.14
✎
14:59
|
(15) Так у тебя есть понимание, почему по заполненному файлу система понимает, какой нужно создать объект, хотя как я понимаю в схеме отсутствует описание типа? Можешь поделиться?
Как я понимаю, чтобы создать пустой объект, схему нужно дополнить именем и пространством имен, как это сделать? |
|||
16
DmitrO
17.09.14
✎
15:00
|
В иерархии типов, все типы унаследованы от anyType.
Это как object в C#. |
|||
17
DmitrO
17.09.14
✎
15:06
|
Что-то типа того:
Файл = Фабрика.Создать(Фабрика.Пакеты[1].КорневыеСвойства.Получить("Файл").Тип); |
|||
18
DmitrO
17.09.14
✎
15:09
|
На сколько я понимаю без модификации схемы указать ей пространство имен нельзя, я тоже как-то давно пытался.. не нашел способа.. Надо прописывать targetNamespace.
|
|||
19
oleg_km
17.09.14
✎
15:25
|
Черт, в корневых свойствах нет Файла. Там всякая такая лабуда:
"unique" "appinfo" "documentation" "annotation" "simpleType" "complexType" "group" "attributeGroup" "redefine" "totalDigits" "whiteSpace" "list" "element" "choice" "complexContent" "attribute" "minLength" "notation" "field" "selector" "maxLength" "maxExclusive" "minExclusive" "simpleContent" "union" "import" "fractionDigits" "enumeration" "any" "key" "pattern" "minInclusive" "maxInclusive" "length" "restriction" "sequence" "include" "schema" "anyAttribute" "keyref" "all" |
|||
20
DmitrO
17.09.14
✎
15:26
|
а пакетов там сколько?
|
|||
21
DmitrO
17.09.14
✎
15:28
|
в (19) это станадартный пакет с NS http://www.w3.org/2001/XMLSchema
|
|||
22
oleg_km
17.09.14
✎
15:30
|
(21) Пакет тоже 1, кстати с индексом 0
|
|||
23
DmitrO
17.09.14
✎
15:31
|
если у фабрики созданной таким образом:
Фабрика = СоздатьФабрикуXDTO(текФайл); пакетов больше нет, то объяснение только одно: "XDTO не работает с анонимными типами" по прежнему.. |
|||
24
DmitrO
17.09.14
✎
15:32
|
(22) я надеялся что там их 2 :)
(23)+ об этом где-то в недрах документации написано. |
|||
25
oleg_km
17.09.14
✎
15:34
|
(24) А, т.е. чтение работает, а создание не работает? Хорошо, а как подправить схему, чтобы у нее появился тип, может там всего пару строчек вклячить?
|
|||
26
DmitrO
17.09.14
✎
15:38
|
(25)да, писали же уже, прописать атрибут targetNamespace и придумать пространство имен этой схеме..
но! тогда и при сериализации объекта XDTO в XML это пространство имен будет прописано в xml файле, что может оказаться не нужным. |
|||
27
Зойч
17.09.14
✎
15:39
|
может проще создать хмл без всяких хдто?
|
|||
28
oleg_km
17.09.14
✎
15:45
|
(27) Просто, чтобы была какая-то модульность приложения, собираю сначала данные в суперструктуру, потом по ней формирую XML. Хотел заменить суперструктуру готовым объектом XDTO и выкинуть многоэкранную процедуру формирования файла с многочисленныеми открывающими и закрывающими тегами.
(26) Если не трудно, напишите как. Если что в готовом файле выкину |
|||
29
DmitrO
17.09.14
✎
15:45
|
ты можешь создать свой объект собственно и так:
Файл = ФабрикаXDTO.Создать("http://www.w3.org/2001/XMLSchema", "anyType"); //ФабрикаXDTO - это свойство глобального контекста! т.е. схему мы вообще не трогали а наполнять его свойствами так: Файл.Добавить(...) Должен получить примерно то, что у тебя читается. |
|||
30
oleg_km
17.09.14
✎
15:47
|
(29) Так не хотелось бы, удваивается код: сначала создаю свойство, потом заполняю его. Хотелось бы создать махом объект, и только заполнять его
|
|||
31
DmitrO
17.09.14
✎
15:49
|
у меня просто была похожая задача, я тоже хотел ее в XDTO завернуть, нифига не получилось изза того что схема была анонимная.. повозился, забил.. и сделал через DOM.
|
|||
32
DmitrO
17.09.14
✎
15:51
|
(30)я понимаю, собственно по причине того что "вдруг чо получится" и участвую в обсуждении, я корыстный :)
|
|||
33
DmitrO
17.09.14
✎
15:58
|
(27) Через DOM формировать данные удобнее чем напрямую в XML, и причина тут в разных подходах..
в сложных структурах, данные в разные узлы одного объекта могут наполняться одновременно (при работе заполняющего кода, например перебор выборки) и иметь зависимости, по скольку DOM объект это делает все в памяти, это возможно. А если использовать прямой XML (ЗаписьXML), то это по сути последовательная запись в файл. |
|||
34
oleg_km
17.09.14
✎
16:06
|
(32) Так а что нужно, чтобы тип, описанный в схеме перестал быть анонимным? У тебя есть правильно описанная схема?
|
|||
35
DmitrO
17.09.14
✎
16:06
|
через XDTO было бы еще лучше, там код который пишет программист контролировался бы XML схемой, и если ты вдруг случайно написал не так имя свойства, будет исключение (исключение - это же ПРЕКРАСНО!) на этапе формирования файла, т.е. еще у нас.. :)
А когда пишем через DOM ошибку в виде неправильного имени элемента или что файл не той структуры обнаружат уже только там, у них (для кого то же мы этот файл делаем). |
|||
36
Зойч
17.09.14
✎
16:09
|
Может проще сделать эмуляцию объекта xdto в виде структуры?
|
|||
37
Зойч
17.09.14
✎
16:09
|
Или дерева значений
|
|||
38
DmitrO
17.09.14
✎
16:10
|
(34) берешь свою схему и добавляешь в эту строку
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema".... атрибут: targetNamespace="oleg_km__temporary_URI" например |
|||
39
oleg_km
17.09.14
✎
16:16
|
(38) Это пространство имен, а имя типа?
|
|||
40
DmitrO
17.09.14
✎
16:18
|
(36)можно. Только зачем наполнять какие-то промежуточные структуры, деревья, а потом еще писать код их сериализации их данных в XML.
Берешь, создаешь объект ДокументDOM и фигачишь туда элементы и атрибуты сразу куда надо во все узлы, а потом одним вызовом сериализуешь его в XML. |
|||
41
DmitrO
17.09.14
✎
16:20
|
(39) а у корневого элемента имени типа нет, делай как в (17)
|
|||
42
oleg_km
17.09.14
✎
16:24
|
(41) Мда, полезли новые тараканы:
{Форма.Форма.Форма(1652)}: Ошибка при вызове метода контекста (СоздатьФабрикуXDTO) ТекФабрикаXDTO = СоздатьФабрикуXDTO(ПутьСхемы); по причине: Ошибка проверки модели XDTO: xdto-valueType-6.1 (определение анонимного типа) свойство: КНД (определение анонимного типа) свойство: Документ (определение анонимного типа) свойство: Файл пакет: oleg_km__temporary_URI Атомарная модель содержания не соответствует определению типа значения |
|||
43
DmitrO
17.09.14
✎
16:27
|
ну, вот.. с такой схемой XDTO работать не будет..
|
|||
44
oleg_km
17.09.14
✎
16:28
|
(43) Ладно, попробую схему студией сделать из файла. Бляха, но читать-то читает. Почему не создает?
|
|||
45
DmitrO
17.09.14
✎
16:29
|
ну точнее, ее еще дорабатывать надо, на сколько я понимаю прописать на наше пространство имен префикс, и поставить этот префикс у всех типов определяемых схемой..
|
|||
46
oleg_km
17.09.14
✎
16:52
|
(45) Да уж, взял схему по-проще. Создал объект только со свойствами первого уровня, остальные выкинул, типы тоже проигнорировал:
Схема: <?xml version="1.0" encoding="utf-8"?> <xs:schema targetNamespace="oleg_km__temporary_URI" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="ORDER"> <xs:complexType> <xs:sequence> <xs:element name="DOCUMENTNAME" type="xs:unsignedByte" /> <xs:element name="NUMBER" type="xs:unsignedInt" /> <xs:element name="DATE" type="xs:date" /> <xs:element name="DELIVERYDATE" type="xs:date" /> <xs:element name="DELIVERYTIME" type="xs:string" /> <xs:element name="HEAD"> <xs:complexType> <xs:sequence> <xs:element name="SUPPLIER" type="xs:unsignedLong" /> <xs:element name="BUYER" type="xs:unsignedLong" /> <xs:element name="DELIVERYPLACE" type="xs:unsignedLong" /> <xs:element name="INVOICEPARTNER" type="xs:unsignedLong" /> <xs:element name="SENDER" type="xs:unsignedLong" /> <xs:element name="RECIPIENT" type="xs:unsignedLong" /> <xs:element name="EDIINTERCHANGEID" type="xs:unsignedShort" /> <xs:element maxOccurs="unbounded" name="POSITION"> Объект: ОбъектXDTO ОбъектXDTO ОбъектXDTO DATE Неопределено DELIVERYDATE Неопределено DELIVERYTIME Неопределено DOCUMENTNAME Неопределено HEAD Неопределено - Это должен быть вложенный объект Я вот думаю, вместе со схемой положить эталонный пустой XML и создавать тоже чтением NUMBER Неопределено |
|||
47
oleg_km
17.09.14
✎
16:54
|
А в шарпе можно как-нибудь аналогично сделать объект? Там вроде тоже предварительно нужно определение написать.
|
|||
48
DmitrO
17.09.14
✎
17:02
|
(46) все правильно вроде, что тебя удивляет?
|
|||
49
oleg_km
17.09.14
✎
17:05
|
(48) А вложенные объекты разве не должен разматывать?
|
|||
50
DmitrO
17.09.14
✎
17:05
|
ты должен создать объект типа определенного свойством HEAD и присвоить его свойству HEAD, если ты забудешь это сделать будет исключение, т.к. элемент по дефолту обязателен.
|
|||
51
DmitrO
17.09.14
✎
17:06
|
(49)ни разу не должен.. элемент может быть еще и не обязательным..
|
|||
52
oleg_km
17.09.14
✎
17:09
|
(51) Так ведь необязательные помечаются optional.
Ладно, пока нет фундаментальных познаний, что тыркаться. Попробую наверное положить пустой XML и по нему создавать объект. Мне кажется так проще будет. |
|||
53
tridog
17.09.14
✎
20:04
|
(44) При чтении оно набивает в объект все свойства, которые есть в xml'е. И совершенно не использует схему. Поэтому и тип у объекта anyType. Ведь прочитать без схемы можно. Но и валидации никакой не будет.
А при создании - добавляются только свойства, которые описаны в схеме - но и тип будет уже не anyType. |
|||
54
oleg_km
17.09.14
✎
20:33
|
(53) Точно, теперь все понятно
|
|||
55
Armando
17.09.14
✎
23:13
|
||||
56
Armando
17.09.14
✎
23:23
|
(26) (28) на днях заморачивался этим Создать XML по схеме XSD без пространства имен
|
|||
57
oleg_km
18.09.14
✎
08:59
|
(55) Вложенные объекты не создает, типы свойствам не назначает. Наверное попробую через эталонный XML
|
|||
58
Armando
18.09.14
✎
10:00
|
(57) покажи как делаешь
|
|||
59
oleg_km
18.09.14
✎
10:32
|
(58)
ПутьСхемы = "E:\Temp\ON_SFAKT_1_897_01_05_01_03.xsd"; ТекФабрикаXDTO = СоздатьФабрикуXDTO(ПутьСхемы); ОбъектXDTO = ТекФабрикаXDTO.Создать(ТекФабрикаXDTO.Пакеты[1].КорневыеСвойства.Получить("ФАЙЛ").Тип); |
|||
60
oleg_km
18.09.14
✎
10:53
|
(58) А как надо?
|
|||
61
oleg_km
18.09.14
✎
11:08
|
Короче, я так понял, что схемы у меня не работают. Работает фабрика без схем. Т.е. просто по готовым заготовкам XML я могу создавать объекты, а потом их записывать в результирующий XML. Пока сделаю так
|
|||
62
Serginio1
18.09.14
✎
11:12
|
Я аналогичную работу с ЭДО решил через сериализацию десериализацию классов .Net
Через программу (не XSD) создал классы и уже их сериализовал десериализовал |
|||
63
oleg_km
18.09.14
✎
11:18
|
(62) Это я примерно понял, ладно сделаю пока так.
|
|||
64
Armando
18.09.14
✎
11:20
|
(59) В созданном объекте XDTO типы свойствам не назначает вроде. Я сначала не так понял.
|
|||
65
Armando
18.09.14
✎
11:22
|
А тебе зачем надо чтоб они назначены были?
|
|||
66
oleg_km
18.09.14
✎
11:30
|
(65) Ну чтобы просто присваивать свойствам значения и не заниматься форматированием, чтобы этим занималась фабрика
|
|||
67
Armando
18.09.14
✎
12:15
|
(66) 1С так не умеет. Придется как-то жить с этим.
|
|||
68
oleg_km
18.09.14
✎
12:16
|
понял
|
|||
69
oleg_km
18.09.14
✎
16:00
|
(29) Не могу понять, как работает ОбъектXDTO.Добавить(). Добавляю аттрибут, значение строка - выдает неправильный тип. В букваре написано что должен быть Элемент или Объект
|
|||
70
Armando
18.09.14
✎
16:22
|
(69) Тебе надо создать объект этой же фабрикой, потом добавить.
|
|||
71
oleg_km
18.09.14
✎
17:37
|
(70) точно
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |