Валидация XML
☑
0
Широкий
01.06.12
✎
14:12
Почему файл
<?xml version="1.0" encoding="UTF-8"?>
<DocumentObject.ПриходнаяНакладная xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ДатаТТН>111</ДатаТТН>
</DocumentObject.ПриходнаяНакладная>
Проходит эту валидацию:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="DocumentObject.ПриходнаяНакладная">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="ДатаТТН" type="xs:unsignedByte" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
но не проходит эту:
<?xml version="1.0" encoding="utf-8" ?>
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="DocumentObject.ПриходнаяНакладная">
<xsd:sequence>
<xsd:element name="ДатаТТН" type="xsd:unsignedByte" minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
1
Wobland
01.06.12
✎
14:13
minOccurs - это о чём?
2
Wobland
01.06.12
✎
14:14
ну так-то видно, что xs:element во втором случае не определил
3
Cube
01.06.12
✎
14:14
(0) В первом случае "<xs:element name="Docume...", а во втором "<xsd:complexType name="Docume..."
4
Широкий
01.06.12
✎
14:17
(2) Не понял.. что не определил?
(3) Я знаю, что написано по разному, логическая разница то в чем?
5
Wobland
01.06.12
✎
14:20
(4) <xsd:complexType name="DocumentObject.ПриходнаяНакладная">
не внутри элемента во втором случае. выходит, вторая вообще ошибочна. ногами не пинать, многого не знаю
6
Широкий
01.06.12
✎
14:24
(5) Как тогда будет выглядеть xml-файл?
7
andrewks
01.06.12
✎
14:24
у тебя во 2-й схеме нет элемента "DocumentObject.ПриходнаяНакладная", а в хмл он есть. чего непонятного-то?
8
Широкий
01.06.12
✎
14:44
(8) Я не догоню. "complexType" - это и есть элемент.
Обе схемы валидны. Тут даже пример есть .
9
Широкий
01.06.12
✎
15:03
Пичаль какая то, 1с не понимает анонимные типы (первую схему). Зато вторую жует на ура (а ее валидаторы не понимают)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший