Имя: Пароль:
1C
1С v8
Сформировать XML схему.
,
0 Адимр
 
10.12.12
16:11
Никто не сталкивался, есть нормальный инструмент что бы на основании xml файла генерировать xml схему которую 1С воспримет.

То что генерирует xsd.exe 1С не воспринимает.
1 Kreont
 
10.12.12
16:13
я думал что всегда наоборот делают, сначала схема а по ней уже xml :(
2 Maxus43
 
10.12.12
16:13
1с воспринимает любую схему которую ей указать, а вот что написано в этой схеме - то и будет
3 Maxus43
 
10.12.12
16:14
на основании xml генерится тупая схема, которая не вкурсе про типы данных в 1с
4 Адимр
 
10.12.12
16:17
типы простые строковые, а не объекты 1С.
5 Serginio1
 
10.12.12
16:18
6 Адимр
 
10.12.12
16:18
(1) Представь что тебе выгружают простой xml файл но не схему. О схеме они не в курсе/не могут итп.
7 Serginio1
 
10.12.12
16:19
(прошу прощения. А как ему узнать про типы?
8 Адимр
 
10.12.12
16:19
(5) я же написал "То что генерирует xsd.exe 1С не воспринимает"
9 Адимр
 
10.12.12
16:19
(7) Тип строка везде.
10 Kreont
 
10.12.12
16:20
А для чего тогда иметь схему по хмл, если толку от нее никакого?
Ею ж ниче не проверишь и т.п., ведь сгенерина она будет по уже готовому хмл файлу, и если в том файле будет в поле задано 777, а изначально предполагалось что там макс.значение 770, то толку от такой схемы тогда?
11 Serginio1
 
10.12.12
16:21
8 Я про то откуда xsd.exe должна знать какие типы используются?
12 Serginio1
 
10.12.12
16:23
Кстати если 1С не воспринимает, значит она читает по какой то схеме которая например хранится в конфигурации?
13 Адимр
 
10.12.12
16:25
простой пример:

xml

<package>
<part code="1">
<gt  id="1" code="11"/>
</part>
</package>


схема генерируемая xsd

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="package" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
 <xs:element name="package" msdata:IsDataSet="true" msdata:Locale="en-US">
   <xs:complexType>
     <xs:choice minOccurs="0" maxOccurs="unbounded">
       <xs:element name="part">
         <xs:complexType>
           <xs:sequence>
             <xs:element name="gt" minOccurs="0" maxOccurs="unbounded">
               <xs:complexType>
                 <xs:attribute name="id" type="xs:string" />
                 <xs:attribute name="code" type="xs:string" />
               </xs:complexType>
             </xs:element>
           </xs:sequence>
           <xs:attribute name="code" type="xs:string" />
         </xs:complexType>
       </xs:element>
     </xs:choice>
   </xs:complexType>
 </xs:element>
</xs:schema>

При импорте схемы в xdto пакет он не импортируется и ошибок не выдается, почему?
14 Serginio1
 
10.12.12
16:41
Пишет импортируемая схема не содержит определение целевого пространства  имен TargetNameSpace

Наверное нужно проставить namespace

xsd file.xsd {/classes | /dataset} [/element:element]
            [/language:language] [/namespace:namespace]
            [/outputdir:directory] [URI:uri]
15 Serginio1
 
10.12.12
16:43
Если выгрузить схему конфигурации
<xs:schema xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:tns="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://v8.1c.ru/8.1/data/enterprise/current-config"
16 Serginio1
 
10.12.12
16:50
17 Адимр
 
10.12.12
16:57
Получилось! Удалил верхнюю строчку в схеме генерируемом xsd и заменил вторую на ту которую генерирует 1С.

<xs:schema xmlns:tns="http://www.me.ru" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.me.ru" attributeFormDefault="unqualified" elementFormDefault="qualified">
18 Serginio1
 
10.12.12
17:11
(17) Покажи схему
19 Serginio1
 
10.12.12
17:16
У меня вот так получилось
<xs:schema xmlns:tns="http://www.me.ru" xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.me.ru"
attributeFormDefault="unqualified
" elementFormDefault="qualified">
   <xs:complexType name="Test">
     <xs:choice minOccurs="0" maxOccurs="unbounded">
       <xs:element name="part">
         <xs:complexType>
           <xs:sequence>
             <xs:element name="gt" minOccurs="0" maxOccurs="unbounded">
               <xs:complexType>
                 <xs:attribute name="id" type="xs:string" />
                 <xs:attribute name="code" type="xs:string" />
               </xs:complexType>
             </xs:element>
           </xs:sequence>
           <xs:attribute name="code" type="xs:string" />
         </xs:complexType>
       </xs:element>
     </xs:choice>
   </xs:complexType>
</xs:schema>
20 Serginio1
 
10.12.12
17:17
Просто по умолчанию XSD генерирует схему для DataSet которую 1С не понимает
2 + 2 = 3.9999999999999999999999999999999...