XSD для добавления новых элементов поверх темы DITA.На какую DITA XSD я должен ссылаться? - PullRequest
0 голосов
/ 23 апреля 2019

из-за требований заказчика мне потребуется сгенерировать новую схему XSD для проверки документов XML, которая добавляет некоторую информацию в тематические документы DITA. Более или менее идея заключается в следующем:

<?xml version="1.0" encoding="UTF-8"?>
<customdocument>
  <custommetadata>
  ...
  </custommetadata>
  <topic>
   <!-- Here it comes a complete valid DITA topic -->
  </topic>
</customdocument>

Мое предложение по XSD следующее:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns="http://myNamespace"
    targetNamespace="http://myNamespace"
    elementFormDefault="qualified">
    <xs:include schemaLocation="MetaInfo.xsd"></xs:include>
    <xs:include schemaLocation=".\dita-v1.3-os\part3-all-inclusive\all-inclusive-grammars\schema-url\base\xsd\basetopic.xsd"></xs:include>
    <xs:element name="customerdocument" type="customerdocumentType"></xs:element>
    <xs:complexType name="customerdocumentType">
        <xs:sequence>
            <xs:element ref="custommetadata" minOccurs="1"></xs:element>
            <xs:element ref="topic" minOccurs="1"></xs:element>
        </xs:sequence>
    </xs:complexType>
</xs:schema>

Элемент custommetadata поступает из уже определенного XSD (MetaInfo.xsd). С другой стороны, элемент topic происходит от \dita-v1.3-os\part3-all-inclusive\all-inclusive-grammars\schema-url\base\xsd\basetopic.xsd (который я считал корневым XSD для проверки темы DITA).

Я пытался проверить некоторые документы, в том числе простые темы DITA, и он отлично работает. Однако для более сложных тем DITA, включающих <uicontrol> элементы, проверка не выполняется.

Engine name: Xerces
Severity: error
Description: cvc-complex-type.2.4.a: Invalid content was found starting with element 'uicontrol'. One of '{dl, div, fig, imagemap, image, lines, lq, note, hazardstatement, object, ol, pre, simpletable, sl, table, ul, boolean, cite, keyword, ph, b, i, line-through, overline, sup, sub, tt, u, q, term, text, tm, xref, state, data, sort-as, data-about, foreign, unknown, draft-comment, fn, indextermref, indexterm, required-cleanup}' is expected.
Start location: 12:22
End location: 12:31
URL: http://www.w3.org/TR/xmlschema-1/#cvc-complex-type

Таким образом, вопрос заключается в том, является ли ссылочный XSD правильной точкой входа для проверки тем DITA? В спецификации 1.3 DITA содержится около 153 файлов XSD.

Некоторая помощь будет очень признательна.

1 Ответ

1 голос
/ 24 апреля 2019

Вы должны попытаться использовать open в "schema \ technicalContent \ xsd \ topic.xsd".

...