109 Položka dmXMLContent (dmBaseTypes.xsd)

admin 17.01.2017 11:36 Attachments: 71523748-false-doc-same.xml, dmBaseTypes.xsd, ess.xsd

Dotaz:

 

ve schématu dmBaseTypes.xsd (ISDS) je nadefinován element dmXMLContent následovně:

 

<xs:element name="dmXMLContent">

<xs:annotation>

<xs:documentation>obálka pro libovolný XML obsah</xs:documentation>

</xs:annotation>

<xs:complexType>

<xs:sequence>

<xs:any namespace="" processContents="skip" />

</xs:sequence>

</xs:complexType>

</xs:element>

 

 

položka namespace je prázdná, implementace Microsoftu v tomto případě říká,

že se jako defaultní použije namespace="##any", nevím jak je to jinde.

 

 

problém spočívá v nemožnosti xml dokument vytvořený dle standardů správně validovat proti schématu

ess.xsd (NSESSS) které schéma dmBaseTypes.xsd importuje, pokud je tento dokument rozšířen

pomocí elementu dmXMLContent.

 

 

 

Chování ve validátoru xmllint:

 

xmllint --version

xmllint: using libxml version 20706

compiled with: Threads Tree Output Push Reader Patterns Writer SAXv1 FTP HTTP DTDValid HTML Legacy C14N Catalog XPath XPointer XInclude Iconv ISO8859X Unicode Regexps Automata Expr Schemas Schematron Modules Debug Zlib

 

xmllint --noout -schema ess.xsd 71523748-false-doc-same.xml

 

71523748-false-doc-same.xml:27: element Formular: Schemas validity error : Element '{http://etrwiki.pcr.cz/etr-formular/v_2.0.0.0}Formular': This element is not expected.

71523748-false-doc-same.xml:102: element Formular: Schemas validity error : Element '{http://etrwiki.pcr.cz/etr-formular/v_2.0.0.0}Formular': This element is not expected.

71523748-false-doc-same.xml fails to validate

 

 

Chování validace v Eclipse Kepler (Version: Kepler Service Release 1

Build id: 20130919-0819 +

Eclipse XML Editors and Tools

Eclipse XSL Developer Tools

)

 

Errors (6 items)

cvc-complex-type.2.4.a: Invalid content was found starting with element 'e:Formular'. One of '{WC[]}' is expected.

cvc-complex-type.2.4.a: Invalid content was found starting with element 'e:Formular'. One of '{WC[]}' is expected.

cvc-complex-type.2.4.d: Invalid content was found starting with element 'e:FormularId'. No child element is expected at this point.

cvc-complex-type.2.4.d: Invalid content was found starting with element 'e:FormularId'. No child element is expected at this point.

cvc-complex-type.3.2.2: Attribute 'DokumentGuid' is not allowed to appear in element 'e:Formular'.

cvc-complex-type.3.2.2: Attribute 'DokumentGuid' is not allowed to appear in element 'e:Formular'.

 

 

 

Po úpravì na dmBaseTypes.xsd na

 

<xs:element name="dmXMLContent">

<xs:annotation>

<xs:documentation>obálka pro libovolný XML obsah</xs:documentation>

</xs:annotation>

<xs:complexType>

<xs:sequence>

<!--<xs:any namespace="" processContents="skip" />-->

<xs:any processContents="skip" />

</xs:sequence>

</xs:complexType>

</xs:element>

 

nebo

 

<xs:element name="dmXMLContent">

<xs:annotation>

<xs:documentation>obálka pro libovolný XML obsah</xs:documentation>

</xs:annotation>

<xs:complexType>

<xs:sequence>

<!--<xs:any namespace="" processContents="skip" />-->

<xs:any namespace="##any" processContents="skip" />

</xs:sequence>

</xs:complexType>

</xs:element>

 

 

 

validace pomocí xmllint nebo eclipse projde. Mám za to, že takto nadefinovaný element nelze rozšířit o žádné xml ať už patří do nějakého jmenného prostoru či nikoliv.

 

Jako řešení doporučuji upravit dmXMLContent tak, aby byl atribut namespace="" vynechán (alternativně namespace="##any")

109.1 Re: Položka dmXMLContent (dmBaseTypes.xsd)

admin 17.01.2017 11:36

Dobrý den,

 

upravíme XSD podle Vašeho podnětu. Nicméně element dmXMLContent nemá v současném ISDS žádný význam a nedoporučuje se ho používat.

 

s pozdravem

 

Jan Šíma

ISDS

109.2 Re: Položka dmXMLContent (dmBaseTypes.xsd)

admin 17.01.2017 11:36

Děkuji Vám za odpověď, i za přislíbené řešení. Položku dmXMLContent používáme v souladu se záměrem dokumentace ISDS pro výměnu dalších dat mezi systémy spisové služby.

 

Kamil Preiss