Несколько элементов в XML-схеме - PullRequest
0 голосов
/ 13 августа 2010

У меня есть схема, где есть 3 элемента, и эти 3 элемента все еще имеют больше подэлементов. Позволяет назвать 1-й элемент заголовком, 2-й - записью, 2-й - нижним колонтитулом.

Один и тот же заголовок, несколько раз записи и еще один случай появления нижнего колонтитула.

поэтому вход в схему выглядит как

header
record..
record..
...
..
footer

Теперь моя проблема. моя схема определяется так

<xs:element minOccurs="1" maxOccurs="1" name="HEADER"> 
<xs:element minOccurs="1" maxOccurs="unbounded" name="Record"> 
<xs:element minOccurs="1" maxOccurs="1" name="FOOTER">

когда файл (с заголовком 2 записи и нижний колонтитул) анализируется через эту схему. синтаксический анализатор распознает, распознает заголовок и обе записи и выдает исключение после распознавания 2-й записи и не выдает нижний колонтитул. Как мы определяем, что max и min происходят, когда есть 2 или более элементов, а средний элемент имеет неограниченные значения, поскольку max происходит

EDIT:

спасибо за ответы. Это мой xsd файл.

<?xml version="1.0" encoding="utf-8" ?>
<xs:schema xmlns:NS="sample.xsd" xmlns="sample.xsd" elementFormDefault="qualified" targetNamespace="sample.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="PTRO">
    <xs:complexType>
      <xs:sequence>


   <xs:element minOccurs="1" maxOccurs="1" name="HEADER">
   <xs:complexType>
    <xs:sequence>
    <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="header_sub_element">
                <xs:simpleType>
               </xs:simpleType>
              </xs:element>
   </xs:sequence>
          </xs:sequence>
          </xs:complexType>
        </xs:element>


        <xs:element minOccurs="1" maxOccurs="unbounded" name="Record">
          <xs:complexType>
            <xs:sequence>
        <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="1" name="Record_sub_element">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="11" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
             </xs:sequence>
          </xs:sequence>
          </xs:complexType>
        </xs:element>
       <xs:element minOccurs="1" maxOccurs="1" name="FOOTER">
   <xs:complexType>
    <xs:sequence>
    <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="footer_sub_element">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
          <xs:maxLength value="9" />
                   </xs:restriction>
                </xs:simpleType>
              </xs:element>
   </xs:sequence>
          </xs:sequence>
          </xs:complexType>
        </xs:element>
</xs:sequence>
  </xs:complexType>
 </xs:element>
</xs:schema>

@ marc_s проблема в том, что когда входной файл (файл .txt), содержащий заголовок, 2 записи, нижний колонтитул анализируется с использованием этой схемы, анализатор распознает заголовок и записи ... и после этого он выдает исключение, так как он не распознает нижний колонтитул Максимальное количество записей не ограничено. Это как-то связано с исключением ??

1 Ответ

0 голосов
/ 13 августа 2010

Вы должны использовать вместо или .

Это должно решить проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...