Strictly speaking, I sould probably have be referring to Xerces-J 2.12.1. Sorry.

One other thing that I should add is that I have not succeeded in finding any 
pattern to the line numbers at which the apparently spurious errors are 
reported.

Here are the files inline, which would have been part of the ZIP file, had I 
been able to send it.

java_xercesX.bat:

set "jdkpath=i:\jdk1.8.0_261"
set "x2path=i:\Xerces-J-bin.2.12.1-xml-schema-1.1\xerces-2_12_1-xml-schema-1.1"
set "xml_data_path=I:\Joomla_MVC_dev\validatexml\admin\testA\"

%jdkpath%\bin\java -cp 
.;%x2path%\xml-apis.jar;%x2path%\xercesImpl.jar;%x2path%\serializer.jar;%x2path%\resolver.jar;%x2path%\org.eclipse.wst.xml.xpath2.processor_1.2.0.jar;%x2path%\xercesSamples.jar;%x2path%\cupv10k-runtime.jar;%x2path%\icu4j.jar;
 %1 -xsd11 -a %xml_data_path%%2 -i %xml_data_path%%3

test.xsd:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
           elementFormDefault="qualified">
        <!-- ********************** -->
        <!-- * Top-level elements * -->
        <!-- ********************** -->
        <xs:element name="extension">
                <xs:alternative test="@type='language'" 
type="extensionTypeLanguage"/>
        </xs:element>
        <!-- ******************************************************** -->
        <!-- * Structures used from more than one top-level element * -->
        <!-- ******************************************************** -->
        <xs:group name="metadata">
                <xs:all>
                        <xs:element name="name" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
                        <xs:element name="creationDate" type="xs:string" 
minOccurs="0" maxOccurs="1"/>
                        <xs:element name="author" type="xs:string" 
minOccurs="0" maxOccurs="1"/>
                        <xs:element name="authorEmail" type="xs:string" 
minOccurs="0" maxOccurs="1"/>
                        <xs:element name="authorUrl" type="xs:anyURI" 
minOccurs="0" maxOccurs="1"/>
                        <xs:element name="copyright" type="xs:string" 
minOccurs="0" maxOccurs="1"/>
                        <!-- 
***************************************************************************** 
-->
                        <!-- * Disregard the following element, not decoded by 
the installation software * -->
                        <!-- 
***************************************************************************** 
-->
                        <xs:element name="license" type="xs:string" 
minOccurs="0" maxOccurs="1"/>
                        <xs:element name="version" type="extensionVersionType" 
minOccurs="0" maxOccurs="1"/>
                        <xs:element name="description" type="xs:string" 
minOccurs="0" maxOccurs="1"/>
                </xs:all>
        </xs:group>
        <xs:simpleType name="methodChoice">
                <xs:restriction base="xs:string">
                        <xs:enumeration value="install"/>
                        <xs:enumeration value="upgrade"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="joomlaVersionChoice">
                <xs:restriction base="xs:string">
                        <xs:pattern value="[23].[0-9]"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="extensionVersionType">
                <xs:restriction base="xs:string">
                        <xs:pattern value="[0-9]([0-9])*(.[0-9]([0-9])*)+"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="tagChoice">
                <xs:restriction base="xs:string">
                        <xs:pattern value="[a-z]{2,3}-[A-Z]{2,3}"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="clientChoice">
                <xs:restriction base="xs:string">
                        <xs:pattern value="administrator|site"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:complexType name="typeUpdateServers">
                <xs:complexContent>
                        <xs:restriction base="xs:anyType">
                                <xs:all>
                                        <xs:element name="server" 
type="typeServerUpdateServers" minOccurs="0" maxOccurs="unbounded"/>
                                </xs:all>
                        </xs:restriction>
                </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="typeMedia">
                <xs:all>
                        <xs:element name="filename" type="xs:string" 
minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element name="folder" type="xs:string" 
minOccurs="0" maxOccurs="unbounded"/>
                </xs:all>
                <xs:attribute name="folder" type="xs:string" use="optional"/>
                <xs:attribute name="destination" type="xs:string" 
use="optional"/>
        </xs:complexType>
        <xs:simpleType name="typeParams">
                <xs:restriction base="xs:string">
                </xs:restriction>
        </xs:simpleType>
        <!-- ************************************ -->
        <!-- * attributes optional or required? * -->
        <!-- ************************************ -->
        <xs:complexType name="typeServerUpdateServers">
                <xs:simpleContent>
                        <xs:extension base="xs:string">
                                <xs:attribute name="name" type="xs:string"/>
                                <xs:attribute name="type" type="serverChoice"/>
                                <!-- 
**************************************************** -->
                                <!-- * Include the "priority" attribute here to 
prevent * -->
                                <!-- * errors although I have failed to 
identify        * -->
                                <!-- * code in Joomla! which processes it.      
        * -->
                                <!-- 
**************************************************** -->
                                <xs:attribute name="priority" 
type="xs:positiveInteger"/>
                        </xs:extension>
                </xs:simpleContent>
        </xs:complexType>
        <xs:simpleType name="serverChoice">
                <xs:restriction base="xs:string">
                        <xs:pattern value="extension|collection"/>
                </xs:restriction>
        </xs:simpleType>
        <!-- ********************************************* -->
        <!-- * Material for Language-specific extensions * -->
        <!-- ********************************************* -->
        <xs:complexType name="extensionTypeLanguage">
                <xs:all>
                        <xs:element name="tag" type="tagChoice" minOccurs="0" 
maxOccurs="1"/>
                        <xs:group ref="metadata"/>
                        <xs:element name="files" type="typeLanguageFiles" 
minOccurs="1" maxOccurs="unbounded"/>
                        <xs:element name="media" type="typeMedia" minOccurs="0" 
maxOccurs="1"/>
                        <xs:element name="params" type="typeParams" 
minOccurs="1" maxOccurs="1"/>
                </xs:all>
                <xs:attribute name="type" type="xs:string" use="required" 
fixed="language"/>
                <xs:attribute name="method" type="methodChoice"/>
                <xs:attribute name="version" type="joomlaVersionChoice"/>
                <xs:attribute name="client" type="clientChoice"/>
        </xs:complexType>
        <xs:complexType name="typeLanguageFilesFilename">
                <xs:simpleContent>
                        <xs:extension base="xs:string">
                                <xs:attribute name="file" type="xs:string" 
use="optional"/>
                                <!-- 
*****************************************************************************************************************************************************************************************
 -->
                                <!-- * Assuming that the current context is 
"/extension/files/filename"                                                     
                                                                 * -->
                                <!-- * check that there are ALL elements in 
this context whose values DO match one of:                                      
                                                                 * -->
                                <!-- *  1) 
^([a-z]{2}[a-z]?-[A-Z]{2}\.((((com)|(lib)|(mod(_[a-z][a-z0-9]+)?)|(plg_[a-z][a-z0-9]+(\-[a-z0-9][a-z0-9]+)*)|(tpl))_[a-z][a-z0-9]+(\.sys)?(\.ini))|(ini)|(css)|(localise\.php)))$
 * -->
                                <!-- *  2) ^([a-z]{2}[a-z]?-[A-Z]{2}\.xml)$     
                                                                                
                                                             * -->
                                <!-- *  3) ^(install\.xml)$                     
                                                                                
                                                             * -->
                                <!-- 
*****************************************************************************************************************************************************************************************
 -->
                                <xs:assert 
test="./text()[matches(.,'^([a-z]{2}[a-z]?-[A-Z]{2}\.((((com)|(lib)|(mod(_[a-z][a-z0-9]+)?)|(plg_[a-z][a-z0-9]+(\-[a-z0-9][a-z0-9]+)*)|(tpl))_[a-z][a-z0-9]+(\.sys)?(\.ini))|(ini)|(css)|(localise\.php)))|([a-z]{2}[a-z]?-[A-Z]{2}\.xml)|(install\.xml)$')]"/>
                                <!-- 
*******************************************************************************************************************************************
 -->
                                <!-- * Of the elements whose values (./text()) 
match:                                                                          
                * -->
                                <!-- *  2) ^([a-z]{2}[a-z]?-[A-Z]{2}\.xml)$     
                                                                                
               * -->
                                <!-- * check that ALL have the "file" 
attribute.                                                                      
                         * -->
                                <!-- 
*******************************************************************************************************************************************
 -->
                                <!-- <xs:assert 
test="./text()[matches(.,'^([a-z]{2}[a-z]?-[A-Z]{2}\.xml)$')]/../@file"/>
                                <xs:assert test="if (true()) then true() else 
false()"/>
                                <xs:assert 
test="matches(text(),'^([a-z]{2}[a-z]?-[A-Z]{2}\.xml)$')"/> -->
                                <xs:assert test="if 
(matches(text(),'^([a-z]{2}[a-z]?-[A-Z]{2}\.xml)$')) then @file else true()"/>
                                <!-- 
*******************************************************************************************************************************************
 -->
                                <!-- * Check that the ONE element which 
matches:                                                                        
                         * -->
                                <!-- *  2) ^([a-z]{2}[a-z]?-[A-Z]{2}\.xml)$     
                                                                                
               * -->
                                <!-- * has an attribute "file" with value 
"meta".                                                                         
                     * -->
                                <!-- 
*******************************************************************************************************************************************
 -->
                                <!-- <xs:assert 
test="./text()[matches(.,'^([a-z]{2}[a-z]?-[A-Z]{2}\.xml)$')]/../@file[.='meta']"/>
 -->
                                <xs:assert test="if 
(matches(text(),'^([a-z]{2}[a-z]?-[A-Z]{2}\.xml)$')) then @file[.='meta'] else 
true()"/>
                                <!-- 
*******************************************************************************************************************************************
 -->
                                <!-- * Of the elements whose values (./text()) 
match:                                                                          
                  * -->
                                <!-- *  3) ^(install\.xml)$                     
                                                                                
               * -->
                                <!-- * check that ALL have the "file" 
attribute.                                                                      
                         * -->
                                <!-- 
*******************************************************************************************************************************************
 -->
                                <xs:assert test="if 
(./text()[matches(.,'^(install\.xml)$')]) then @file else true()"/>
                                <!-- 
*******************************************************************************************************************************************
 -->
                                <!-- * Check that the ONE element which 
matches:                                                                        
                         * -->
                                <!-- *  3) ^(install\.xml)$                     
                                                                                
               * -->
                                <!-- * has an attribute "file" with value 
"meta".                                                                         
                     * -->
                                <!-- 
*******************************************************************************************************************************************
 -->
                                <xs:assert test="if 
(./text()[matches(.,'^(install\.xml)$')]) then @file[.='meta'] else true()"/>
                        </xs:extension>
                </xs:simpleContent>
        </xs:complexType>
        <xs:complexType name="typeLanguageFiles">
                <xs:all>
                        <xs:element name="folder" type="xs:string" 
minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element name="filename" 
type="typeLanguageFilesFilename" minOccurs="1" maxOccurs="unbounded"/> <!-- For 
the "index.<php|html>" file -->
                </xs:all>
                <xs:attribute name="folder" type="xs:string" use="optional"/>
                <!-- 
*****************************************************************************************************************************************************************************************
 -->
                <!-- * Assuming that the current context is "/extension/files"  
                                                                                
                                             * -->
                <!-- 
*****************************************************************************************************************************************************************************************
 -->
                <!-- 
*****************************************************************************************************************************************************************************************
 -->
                <!-- Of the elements whose values (./text()) match:             
                                                                                
                                             * -->
                <!-- *  1) 
^([a-z]{2}[a-z]?-[A-Z]{2}\.((((com)|(lib)|(mod(_[a-z][a-z0-9]+)?)|(plg_[a-z][a-z0-9]+(\-[a-z0-9][a-z0-9]+)*)|(tpl))_[a-z][a-z0-9]+(\.sys)?(\.ini))|(ini)|(css)|(localise\.php)))$
 * -->
                <!-- * check that NONE have the "file" attribute.               
                                                                                
                                             * -->
                <!-- 
*****************************************************************************************************************************************************************************************
 -->
                <xs:assert 
test="count(./filename/text()[matches(.,'^([a-z]{2}[a-z]?-[A-Z]{2}\.((((com)|(lib)|(mod(_[a-z][a-z0-9]+)?)|(plg_[a-z][a-z0-9]+(\-[a-z0-9][a-z0-9]+)*)|(tpl))_[a-z][a-z0-9]+(\.sys)?(\.ini))|(ini)|(css)|(localise\.php)))$')]/..[@file])=0"/>
                <!-- 
*****************************************************************************************************************************************************************************************
 -->
                <!-- * Check there is ONE and ONLY ONE element whose value 
(./text()) matches:                                                             
                                                  * -->
                <!-- *  2) ^([a-z]{2}[a-z]?-[A-Z]{2}\.xml)$                     
                                                                                
                                             * -->
                <!-- 
*****************************************************************************************************************************************************************************************
 -->
                <xs:assert 
test="count(./filename/text()[matches(.,'^([a-z]{2}[a-z]?-[A-Z]{2}\.xml)$')])=1"/>
                <!-- 
*****************************************************************************************************************************************************************************************
 -->
                <!-- * Check there is ONE and ONLY ONE element whose value 
(./text()) matches:                                                             
                                                  * -->
                <!-- *  3) ^(install\.xml)$                                     
                                                                                
                                             * -->
                <!-- 
*****************************************************************************************************************************************************************************************
 -->
                <xs:assert 
test="count(./filename/text()[matches(.,'^(install\.xml)$')])=1"/>
        </xs:complexType>
</xs:schema>

test1.xml

<extension version="3.7" client="administrator" type="language" 
method="upgrade"> <!-- change to client="site" if site pack -->
        <name>French (fr-FR)</name> <!-- New in 3.7.0: Use only latin ascii 
characters. -->
        <tag>fr-FR</tag>
        <version>3.7.0.1</version>
        <creationDate>15/02/2017</creationDate>
        <author>French translation team : joomla.fr</author>
        <authorEmail>traduct...@joomla.fr</authorEmail>
        <authorUrl>www.joomla.fr</authorUrl>
        <copyright>Copyright (C) 2005 - 2017 joomla.fr et Open Source Matters. 
Tous droits réservés</copyright>
        <license>GNU General Public License version 2 or later; see 
LICENSE.txt</license>
        <description>fr-FR administrator language</description>
        <files>
                <filename>fr-FR.plg_captcha_recaptcha.sys.ini</filename>
                <filename>fr-FR.com_admin.ini</filename>
                <filename>fr-FR.com_admin.sys.ini</filename>
                <filename>fr-FR.com_ajax.ini</filename>
                <filename>fr-FR.com_ajax.sys.ini</filename>
                <filename>fr-FR.com_associations.ini</filename>
                <filename>fr-FR.com_associations.sys.ini</filename>
                <filename>fr-FR.com_banners.ini</filename>
                <filename>fr-FR.com_banners.sys.ini</filename>
                <filename>fr-FR.com_cache.ini</filename>
                <filename>fr-FR.com_cache.sys.ini</filename>
                <filename>fr-FR.com_categories.ini</filename>
                <filename>fr-FR.com_categories.sys.ini</filename>
                <filename>fr-FR.com_checkin.ini</filename>
                <filename>fr-FR.com_checkin.sys.ini</filename>
                <filename>fr-FR.com_config.ini</filename>
                <filename>fr-FR.com_config.sys.ini</filename>
                <filename>fr-FR.com_contact.ini</filename>
                <filename>fr-FR.com_contact.sys.ini</filename>
                <filename>fr-FR.com_content.ini</filename>
                <filename>fr-FR.com_content.sys.ini</filename>
                <filename>fr-FR.com_contenthistory.ini</filename>
                <filename>fr-FR.com_contenthistory.sys.ini</filename>
                <filename>fr-FR.com_cpanel.ini</filename>
                <filename>fr-FR.com_cpanel.sys.ini</filename>
                <filename>fr-FR.com_fields.ini</filename>
                <filename>fr-FR.com_fields.sys.ini</filename>
                <filename>fr-FR.com_finder.ini</filename>
                <filename>fr-FR.com_finder.sys.ini</filename>
                <filename>fr-FR.com_installer.ini</filename>
                <filename>fr-FR.com_installer.sys.ini</filename>
                <filename>fr-FR.com_joomlaupdate.ini</filename>
                <filename>fr-FR.com_joomlaupdate.sys.ini</filename>
                <filename>fr-FR.com_languages.ini</filename>
                <filename>fr-FR.com_languages.sys.ini</filename>
                <filename>fr-FR.com_login.ini</filename>
                <filename>fr-FR.com_login.sys.ini</filename>
                <filename>fr-FR.com_mailto.sys.ini</filename>
                <filename>fr-FR.com_media.ini</filename>
                <filename>fr-FR.com_media.sys.ini</filename>
                <filename>fr-FR.com_menus.ini</filename>
                <filename>fr-FR.com_menus.sys.ini</filename>
                <filename>fr-FR.com_messages.ini</filename>
                <filename>fr-FR.com_messages.sys.ini</filename>
                <filename>fr-FR.com_modules.ini</filename>
                <filename>fr-FR.com_modules.sys.ini</filename>
                <filename>fr-FR.com_newsfeeds.ini</filename>
                <filename>fr-FR.com_newsfeeds.sys.ini</filename>
                <filename>fr-FR.com_plugins.ini</filename>
                <filename>fr-FR.com_plugins.sys.ini</filename>
                <filename>fr-FR.com_postinstall.ini</filename>
                <filename>fr-FR.com_postinstall.sys.ini</filename>
                <filename>fr-FR.com_redirect.ini</filename>
                <filename>fr-FR.com_redirect.sys.ini</filename>
                <filename>fr-FR.com_search.ini</filename>
                <filename>fr-FR.com_search.sys.ini</filename>
                <filename>fr-FR.com_tags.ini</filename>
                <filename>fr-FR.com_tags.sys.ini</filename>
                <filename>fr-FR.com_templates.ini</filename>
                <filename>fr-FR.com_templates.sys.ini</filename>
                <filename>fr-FR.com_users.ini</filename>
                <filename>fr-FR.com_users.sys.ini</filename>
                <filename>fr-FR.com_weblinks.ini</filename>
                <filename>fr-FR.com_weblinks.sys.ini</filename>
                <filename>fr-FR.com_wrapper.ini</filename>
                <filename>fr-FR.com_wrapper.sys.ini</filename>
                <!-- this file can be added in the ADMINISTRATOR pack if one 
wants to change the fonts used to display the back-end interface.-->
                        <filename>fr-FR.css</filename>
                <!-- -->
                <filename>fr-FR.ini</filename>
                <filename>fr-FR.lib_joomla.ini</filename>
                <filename>fr-FR.localise.php</filename>
                <filename>fr-FR.mod_custom.ini</filename>
                <filename>fr-FR.mod_custom.sys.ini</filename>
                <filename>fr-FR.mod_feed.ini</filename>
                <filename>fr-FR.mod_feed.sys.ini</filename>
                <filename>fr-FR.mod_latest.ini</filename>
                <filename>fr-FR.mod_latest.sys.ini</filename>
                <filename>fr-FR.mod_logged.ini</filename>
                <filename>fr-FR.mod_logged.sys.ini</filename>
                <filename>fr-FR.mod_login.ini</filename>
                <filename>fr-FR.mod_login.sys.ini</filename>
                <filename>fr-FR.mod_menu.ini</filename>
                <filename>fr-FR.mod_menu.sys.ini</filename>
                <filename>fr-FR.mod_multilangstatus.ini</filename>
                <filename>fr-FR.mod_multilangstatus.sys.ini</filename>
                <filename>fr-FR.mod_popular.ini</filename>
                <filename>fr-FR.mod_popular.sys.ini</filename>
                <filename>fr-FR.mod_quickicon.ini</filename>
                <filename>fr-FR.mod_quickicon.sys.ini</filename>
                <filename>fr-FR.mod_stats_admin.ini</filename>
                <filename>fr-FR.mod_stats_admin.sys.ini</filename>
                <filename>fr-FR.mod_status.ini</filename>
                <filename>fr-FR.mod_status.sys.ini</filename>
                <filename>fr-FR.mod_submenu.ini</filename>
                <filename>fr-FR.mod_submenu.sys.ini</filename>
                <filename>fr-FR.mod_title.ini</filename>
                <filename>fr-FR.mod_title.sys.ini</filename>
                <filename>fr-FR.mod_toolbar.ini</filename>
                <filename>fr-FR.mod_toolbar.sys.ini</filename>
                <filename>fr-FR.mod_version.ini</filename>
                <filename>fr-FR.mod_version.sys.ini</filename>
                <filename>fr-FR.plg_authentication_cookie.ini</filename>
                <filename>fr-FR.plg_authentication_cookie.sys.ini</filename>
                <filename>fr-FR.plg_authentication_gmail.ini</filename>
                <filename>fr-FR.plg_authentication_gmail.sys.ini</filename>
                <filename>fr-FR.plg_authentication_joomla.ini</filename>
                <filename>fr-FR.plg_authentication_joomla.sys.ini</filename>
                <filename>fr-FR.plg_authentication_ldap.ini</filename>
                <filename>fr-FR.plg_authentication_ldap.sys.ini</filename>
                <filename>fr-FR.plg_captcha_recaptcha.ini</filename>
                <filename>fr-FR.plg_captcha_recaptcha.sys.ini</filename>
                <filename>fr-FR.plg_content_contact.ini</filename>
                <filename>fr-FR.plg_content_contact.sys.ini</filename>
                <filename>fr-FR.plg_content_emailcloak.ini</filename>
                <filename>fr-FR.plg_content_emailcloak.sys.ini</filename>
                <filename>fr-FR.plg_content_fields.ini</filename>
                <filename>fr-FR.plg_content_fields.sys.ini</filename>
                <filename>fr-FR.plg_content_finder.ini</filename>
                <filename>fr-FR.plg_content_finder.sys.ini</filename>
                <filename>fr-FR.plg_content_joomla.ini</filename>
                <filename>fr-FR.plg_content_joomla.sys.ini</filename>
                <filename>fr-FR.plg_content_loadmodule.ini</filename>
                <filename>fr-FR.plg_content_loadmodule.sys.ini</filename>
                <filename>fr-FR.plg_content_pagebreak.ini</filename>
                <filename>fr-FR.plg_content_pagebreak.sys.ini</filename>
                <filename>fr-FR.plg_content_pagenavigation.ini</filename>
                <filename>fr-FR.plg_content_pagenavigation.sys.ini</filename>
                <filename>fr-FR.plg_content_vote.ini</filename>
                <filename>fr-FR.plg_content_vote.sys.ini</filename>
                <filename>fr-FR.plg_editors-xtd_article.ini</filename>
                <filename>fr-FR.plg_editors-xtd_article.sys.ini</filename>
                <filename>fr-FR.plg_editors-xtd_contact.ini</filename>
                <filename>fr-FR.plg_editors-xtd_contact.sys.ini</filename>
                <filename>fr-FR.plg_editors-xtd_fields.ini</filename>
                <filename>fr-FR.plg_editors-xtd_fields.sys.ini</filename>
                <filename>fr-FR.plg_editors-xtd_image.ini</filename>
                <filename>fr-FR.plg_editors-xtd_image.sys.ini</filename>
                <filename>fr-FR.plg_editors-xtd_menu.ini</filename>
                <filename>fr-FR.plg_editors-xtd_menu.sys.ini</filename>
                <filename>fr-FR.plg_editors-xtd_module.ini</filename>
                <filename>fr-FR.plg_editors-xtd_module.sys.ini</filename>
                <filename>fr-FR.plg_editors-xtd_pagebreak.ini</filename>
                <filename>fr-FR.plg_editors-xtd_pagebreak.sys.ini</filename>
                <!-- Spacer to get past a buggy record count! -->
                <filename>fr-FR.plg_editors-xtd_readmore.ini</filename>
                <filename>fr-FR.plg_editors-xtd_readmore.sys.ini</filename>
                <filename>fr-FR.plg_editors_codemirror.ini</filename>
                <filename>fr-FR.plg_editors_codemirror.sys.ini</filename>
                <filename>fr-FR.plg_editors_none.ini</filename>
                <filename>fr-FR.plg_editors_none.sys.ini</filename>
                <filename>fr-FR.plg_editors_tinymce.ini</filename>
                <filename>fr-FR.plg_editors_tinymce.sys.ini</filename>
                <filename>fr-FR.plg_extension_joomla.ini</filename>
                <filename>fr-FR.plg_extension_joomla.sys.ini</filename>
                <filename>fr-FR.plg_fields_calendar.ini</filename>
                <filename>fr-FR.plg_fields_calendar.sys.ini</filename>
                <filename>fr-FR.plg_fields_checkboxes.ini</filename>
                <filename>fr-FR.plg_fields_checkboxes.sys.ini</filename>
                <filename>fr-FR.plg_fields_color.ini</filename>
                <filename>fr-FR.plg_fields_color.sys.ini</filename>
                <filename>fr-FR.plg_fields_editor.ini</filename>
                <filename>fr-FR.plg_fields_editor.sys.ini</filename>
                <filename>fr-FR.plg_fields_gallery.ini</filename>
                <filename>fr-FR.plg_fields_gallery.sys.ini</filename>
                <filename>fr-FR.plg_fields_image.ini</filename>
                <filename>fr-FR.plg_fields_image.sys.ini</filename>
                <filename>fr-FR.plg_fields_imagelist.ini</filename>
                <filename>fr-FR.plg_fields_imagelist.sys.ini</filename>
                <filename>fr-FR.plg_fields_integer.ini</filename>
                <filename>fr-FR.plg_fields_integer.sys.ini</filename>
                <filename>fr-FR.plg_fields_list.ini</filename>
                <filename>fr-FR.plg_fields_list.sys.ini</filename>
                <filename>fr-FR.plg_fields_media.ini</filename>
                <filename>fr-FR.plg_fields_media.sys.ini</filename>
                <filename>fr-FR.plg_fields_radio.ini</filename>
                <filename>fr-FR.plg_fields_radio.sys.ini</filename>
                <filename>fr-FR.plg_fields_sql.ini</filename>
                <filename>fr-FR.plg_fields_sql.sys.ini</filename>
                <filename>fr-FR.plg_fields_text.ini</filename>
                <filename>fr-FR.plg_fields_text.sys.ini</filename>
                <filename>fr-FR.plg_fields_textarea.ini</filename>
                <filename>fr-FR.plg_fields_textarea.sys.ini</filename>
                <filename>fr-FR.plg_fields_url.ini</filename>
                <filename>fr-FR.plg_fields_url.sys.ini</filename>
                <filename>fr-FR.plg_fields_user.ini</filename>
                <filename>fr-FR.plg_fields_user.sys.ini</filename>
                <filename>fr-FR.plg_fields_usergrouplist.ini</filename>
                <filename>fr-FR.plg_fields_usergrouplist.sys.ini</filename>
                <filename>fr-FR.plg_finder_categories.ini</filename>
                <filename>fr-FR.plg_finder_categories.sys.ini</filename>
                <filename>fr-FR.plg_finder_contacts.ini</filename>
                <filename>fr-FR.plg_finder_contacts.sys.ini</filename>
                <filename>fr-FR.plg_finder_content.ini</filename>
                <filename>fr-FR.plg_finder_content.sys.ini</filename>
                <filename>fr-FR.plg_finder_newsfeeds.ini</filename>
                <filename>fr-FR.plg_finder_newsfeeds.sys.ini</filename>
                <filename>fr-FR.plg_finder_tags.ini</filename>
                <filename>fr-FR.plg_finder_tags.sys.ini</filename>
                <filename>fr-FR.plg_finder_weblinks.ini</filename>
                <filename>fr-FR.plg_finder_weblinks.sys.ini</filename>
                <filename>fr-FR.plg_installer_folderinstaller.ini</filename>
                <filename>fr-FR.plg_installer_folderinstaller.sys.ini</filename>
                <filename>fr-FR.plg_installer_packageinstaller.ini</filename>
                
<filename>fr-FR.plg_installer_packageinstaller.sys.ini</filename>
                <filename>fr-FR.plg_installer_urlinstaller.ini</filename>
                <filename>fr-FR.plg_installer_urlinstaller.sys.ini</filename>
                <filename>fr-FR.plg_installer_webinstaller.ini</filename>
                <filename>fr-FR.plg_installer_webinstaller.sys.ini</filename>
                <filename>fr-FR.plg_quickicon_extensionupdate.ini</filename>
                <filename>fr-FR.plg_quickicon_extensionupdate.sys.ini</filename>
                <filename>fr-FR.plg_quickicon_joomlaupdate.ini</filename>
                <filename>fr-FR.plg_quickicon_joomlaupdate.sys.ini</filename>
                <filename>fr-FR.plg_quickicon_phpversioncheck.ini</filename>
                <filename>fr-FR.plg_quickicon_phpversioncheck.sys.ini</filename>
                <filename>fr-FR.plg_search_categories.ini</filename>
                <filename>fr-FR.plg_search_categories.sys.ini</filename>
                <filename>fr-FR.plg_search_contacts.ini</filename>
                <filename>fr-FR.plg_search_contacts.sys.ini</filename>
                <filename>fr-FR.plg_search_content.ini</filename>
                <filename>fr-FR.plg_search_content.sys.ini</filename>
                <filename>fr-FR.plg_search_newsfeeds.ini</filename>
                <filename>fr-FR.plg_search_newsfeeds.sys.ini</filename>
                <filename>fr-FR.plg_search_tags.ini</filename>
                <filename>fr-FR.plg_search_tags.sys.ini</filename>
                <filename>fr-FR.plg_search_weblinks.ini</filename>
                <filename>fr-FR.plg_search_weblinks.sys.ini</filename>
                <filename>fr-FR.plg_system_cache.ini</filename>
                <filename>fr-FR.plg_system_cache.sys.ini</filename>
                <filename>fr-FR.plg_system_debug.ini</filename>
                <filename>fr-FR.plg_system_debug.sys.ini</filename>
                <filename>fr-FR.plg_system_fields.ini</filename>
                <filename>fr-FR.plg_system_fields.sys.ini</filename>
                <filename>fr-FR.plg_system_highlight.ini</filename>
                <filename>fr-FR.plg_system_highlight.sys.ini</filename>
                <filename>fr-FR.plg_system_languagecode.ini</filename>
                <filename>fr-FR.plg_system_languagecode.sys.ini</filename>
                <filename>fr-FR.plg_system_languagefilter.ini</filename>
                <filename>fr-FR.plg_system_languagefilter.sys.ini</filename>
                <filename>fr-FR.plg_system_log.ini</filename>
                <filename>fr-FR.plg_system_log.sys.ini</filename>
                <filename>fr-FR.plg_system_logout.ini</filename>
                <filename>fr-FR.plg_system_logout.sys.ini</filename>
                <filename>fr-FR.plg_system_p3p.ini</filename>
                <filename>fr-FR.plg_system_p3p.sys.ini</filename>
                <filename>fr-FR.plg_system_redirect.ini</filename>
                <filename>fr-FR.plg_system_redirect.sys.ini</filename>
                <filename>fr-FR.plg_system_remember.ini</filename>
                <filename>fr-FR.plg_system_remember.sys.ini</filename>
                <filename>fr-FR.plg_system_sef.ini</filename>
                <filename>fr-FR.plg_system_sef.sys.ini</filename>
                <filename>fr-FR.plg_system_stats.ini</filename>
                <filename>fr-FR.plg_system_stats.sys.ini</filename>
                <filename>fr-FR.plg_system_updatenotification.ini</filename>
                <filename>fr-FR.plg_system_updatenotification.sys.ini</filename>
                <filename>fr-FR.plg_twofactorauth_totp.ini</filename>
                <filename>fr-FR.plg_twofactorauth_totp.sys.ini</filename>
                <filename>fr-FR.plg_twofactorauth_yubikey.ini</filename>
                <filename>fr-FR.plg_twofactorauth_yubikey.sys.ini</filename>
                <filename>fr-FR.plg_user_contactcreator.ini</filename>
                <filename>fr-FR.plg_user_contactcreator.sys.ini</filename>
                <filename>fr-FR.plg_user_joomla.ini</filename>
                <filename>fr-FR.plg_user_joomla.sys.ini</filename>
                <filename>fr-FR.plg_user_profile.ini</filename>
                <filename>fr-FR.plg_user_profile.sys.ini</filename>
                <filename>fr-FR.tpl_hathor.ini</filename>
                <filename>fr-FR.tpl_hathor.sys.ini</filename>
                <filename>fr-FR.tpl_isis.ini</filename>
                <filename>fr-FR.tpl_isis.sys.ini</filename>
                <!-- This file is mandatory as otherwise the pack can't be 
uninstalled. -->
                <filename file="meta">install.xml</filename>
                <filename file="meta">fr-FR.xml</filename>
        </files>
        <media destination="fr-FR">  <!-- If one needs to add a specific 
calendar -->
            <filename>index.html</filename>
            <filename>js/index.html</filename>
            <filename>js/calendar-setup.js</filename>
            <filename>js/calendar.js</filename>
        </media>
        <params />
</extension>

test2.xml

<extension version="3.7" client="administrator" type="language" 
method="upgrade"> <!-- change to client="site" if site pack -->
        <name>French (fr-FR)</name> <!-- New in 3.7.0: Use only latin ascii 
characters. -->
        <tag>fr-FR</tag>
        <version>3.7.0.1</version>
        <creationDate>15/02/2017</creationDate>
        <author>French translation team : joomla.fr</author>
        <authorEmail>traduct...@joomla.fr</authorEmail>
        <authorUrl>www.joomla.fr</authorUrl>
        <copyright>Copyright (C) 2005 - 2017 joomla.fr et Open Source Matters. 
Tous droits réservés</copyright>
        <license>GNU General Public License version 2 or later; see 
LICENSE.txt</license>
        <description>fr-FR administrator language</description>
        <files>
                <filename>fr-FR.plg_captcha_recaptcha.sys.ini</filename>
                <filename>fr-FR.com_admin.ini</filename>
                <filename>fr-FR.com_admin.sys.ini</filename>
                <filename>fr-FR.com_ajax.ini</filename>
                <filename>fr-FR.com_ajax.sys.ini</filename>
                <filename>fr-FR.com_associations.ini</filename>
                <filename>fr-FR.com_associations.sys.ini</filename>
                <filename>fr-FR.com_banners.ini</filename>
                <filename>fr-FR.com_banners.sys.ini</filename>
                <filename>fr-FR.com_cache.ini</filename>
                <filename>fr-FR.com_cache.sys.ini</filename>
                <filename>fr-FR.com_categories.ini</filename>
                <filename>fr-FR.com_categories.sys.ini</filename>
                <filename>fr-FR.com_checkin.ini</filename>
                <filename>fr-FR.com_checkin.sys.ini</filename>
                <filename>fr-FR.com_config.ini</filename>
                <filename>fr-FR.com_config.sys.ini</filename>
                <filename>fr-FR.com_contact.ini</filename>
                <filename>fr-FR.com_contact.sys.ini</filename>
                <filename>fr-FR.com_content.ini</filename>
                <filename>fr-FR.com_content.sys.ini</filename>
                <filename>fr-FR.com_contenthistory.ini</filename>
                <filename>fr-FR.com_contenthistory.sys.ini</filename>
                <filename>fr-FR.com_cpanel.ini</filename>
                <filename>fr-FR.com_cpanel.sys.ini</filename>
                <filename>fr-FR.com_fields.ini</filename>
                <filename>fr-FR.com_fields.sys.ini</filename>
                <!-- Spacer to get past a buggy record count! -->
                <filename>fr-FR.com_finder.ini</filename>
                <filename>fr-FR.com_finder.sys.ini</filename>
                <filename>fr-FR.com_installer.ini</filename>
                <filename>fr-FR.com_installer.sys.ini</filename>
                <filename>fr-FR.com_joomlaupdate.ini</filename>
                <filename>fr-FR.com_joomlaupdate.sys.ini</filename>
                <filename>fr-FR.com_languages.ini</filename>
                <filename>fr-FR.com_languages.sys.ini</filename>
                <filename>fr-FR.com_login.ini</filename>
                <filename>fr-FR.com_login.sys.ini</filename>
                <filename>fr-FR.com_mailto.sys.ini</filename>
                <filename>fr-FR.com_media.ini</filename>
                <filename>fr-FR.com_media.sys.ini</filename>
                <filename>fr-FR.com_menus.ini</filename>
                <filename>fr-FR.com_menus.sys.ini</filename>
                <filename>fr-FR.com_messages.ini</filename>
                <filename>fr-FR.com_messages.sys.ini</filename>
                <filename>fr-FR.com_modules.ini</filename>
                <filename>fr-FR.com_modules.sys.ini</filename>
                <filename>fr-FR.com_newsfeeds.ini</filename>
                <filename>fr-FR.com_newsfeeds.sys.ini</filename>
                <filename>fr-FR.com_plugins.ini</filename>
                <filename>fr-FR.com_plugins.sys.ini</filename>
                <filename>fr-FR.com_postinstall.ini</filename>
                <filename>fr-FR.com_postinstall.sys.ini</filename>
                <filename>fr-FR.com_redirect.ini</filename>
                <filename>fr-FR.com_redirect.sys.ini</filename>
                <filename>fr-FR.com_search.ini</filename>
                <filename>fr-FR.com_search.sys.ini</filename>
                <filename>fr-FR.com_tags.ini</filename>
                <filename>fr-FR.com_tags.sys.ini</filename>
                <filename>fr-FR.com_templates.ini</filename>
                <filename>fr-FR.com_templates.sys.ini</filename>
                <filename>fr-FR.com_users.ini</filename>
                <filename>fr-FR.com_users.sys.ini</filename>
                <filename>fr-FR.com_weblinks.ini</filename>
                <filename>fr-FR.com_weblinks.sys.ini</filename>
                <filename>fr-FR.com_wrapper.ini</filename>
                <filename>fr-FR.com_wrapper.sys.ini</filename>
                <!-- this file can be added in the ADMINISTRATOR pack if one 
wants to change the fonts used to display the back-end interface.-->
                        <filename>fr-FR.css</filename>
                <!-- -->
                <filename>fr-FR.ini</filename>
                <filename>fr-FR.lib_joomla.ini</filename>
                <filename>fr-FR.localise.php</filename>
                <filename>fr-FR.mod_custom.ini</filename>
                <filename>fr-FR.mod_custom.sys.ini</filename>
                <filename>fr-FR.mod_feed.ini</filename>
                <filename>fr-FR.mod_feed.sys.ini</filename>
                <filename>fr-FR.mod_latest.ini</filename>
                <filename>fr-FR.mod_latest.sys.ini</filename>
                <filename>fr-FR.mod_logged.ini</filename>
                <filename>fr-FR.mod_logged.sys.ini</filename>
                <filename>fr-FR.mod_login.ini</filename>
                <filename>fr-FR.mod_login.sys.ini</filename>
                <filename>fr-FR.mod_menu.ini</filename>
                <filename>fr-FR.mod_menu.sys.ini</filename>
                <filename>fr-FR.mod_multilangstatus.ini</filename>
                <filename>fr-FR.mod_multilangstatus.sys.ini</filename>
                <filename>fr-FR.mod_popular.ini</filename>
                <filename>fr-FR.mod_popular.sys.ini</filename>
                <filename>fr-FR.mod_quickicon.ini</filename>
                <filename>fr-FR.mod_quickicon.sys.ini</filename>
                <filename>fr-FR.mod_stats_admin.ini</filename>
                <filename>fr-FR.mod_stats_admin.sys.ini</filename>
                <filename>fr-FR.mod_status.ini</filename>
                <filename>fr-FR.mod_status.sys.ini</filename>
                <filename>fr-FR.mod_submenu.ini</filename>
                <filename>fr-FR.mod_submenu.sys.ini</filename>
                <filename>fr-FR.mod_title.ini</filename>
                <filename>fr-FR.mod_title.sys.ini</filename>
                <filename>fr-FR.mod_toolbar.ini</filename>
                <filename>fr-FR.mod_toolbar.sys.ini</filename>
                <filename>fr-FR.mod_version.ini</filename>
                <filename>fr-FR.mod_version.sys.ini</filename>
                <filename>fr-FR.plg_authentication_cookie.ini</filename>
                <filename>fr-FR.plg_authentication_cookie.sys.ini</filename>
                <filename>fr-FR.plg_authentication_gmail.ini</filename>
                <filename>fr-FR.plg_authentication_gmail.sys.ini</filename>
                <filename>fr-FR.plg_authentication_joomla.ini</filename>
                <filename>fr-FR.plg_authentication_joomla.sys.ini</filename>
                <filename>fr-FR.plg_authentication_ldap.ini</filename>
                <filename>fr-FR.plg_authentication_ldap.sys.ini</filename>
                <filename>fr-FR.plg_captcha_recaptcha.ini</filename>
                <filename>fr-FR.plg_captcha_recaptcha.sys.ini</filename>
                <filename>fr-FR.plg_content_contact.ini</filename>
                <filename>fr-FR.plg_content_contact.sys.ini</filename>
                <filename>fr-FR.plg_content_emailcloak.ini</filename>
                <filename>fr-FR.plg_content_emailcloak.sys.ini</filename>
                <filename>fr-FR.plg_content_fields.ini</filename>
                <filename>fr-FR.plg_content_fields.sys.ini</filename>
                <filename>fr-FR.plg_content_finder.ini</filename>
                <filename>fr-FR.plg_content_finder.sys.ini</filename>
                <filename>fr-FR.plg_content_joomla.ini</filename>
                <filename>fr-FR.plg_content_joomla.sys.ini</filename>
                <filename>fr-FR.plg_content_loadmodule.ini</filename>
                <filename>fr-FR.plg_content_loadmodule.sys.ini</filename>
                <filename>fr-FR.plg_content_pagebreak.ini</filename>
                <filename>fr-FR.plg_content_pagebreak.sys.ini</filename>
                <filename>fr-FR.plg_content_pagenavigation.ini</filename>
                <filename>fr-FR.plg_content_pagenavigation.sys.ini</filename>
                <filename>fr-FR.plg_content_vote.ini</filename>
                <filename>fr-FR.plg_content_vote.sys.ini</filename>
                <filename>fr-FR.plg_editors-xtd_article.ini</filename>
                <filename>fr-FR.plg_editors-xtd_article.sys.ini</filename>
                <filename>fr-FR.plg_editors-xtd_contact.ini</filename>
                <filename>fr-FR.plg_editors-xtd_contact.sys.ini</filename>
                <filename>fr-FR.plg_editors-xtd_fields.ini</filename>
                <filename>fr-FR.plg_editors-xtd_fields.sys.ini</filename>
                <filename>fr-FR.plg_editors-xtd_image.ini</filename>
                <filename>fr-FR.plg_editors-xtd_image.sys.ini</filename>
                <filename>fr-FR.plg_editors-xtd_menu.ini</filename>
                <filename>fr-FR.plg_editors-xtd_menu.sys.ini</filename>
                <filename>fr-FR.plg_editors-xtd_module.ini</filename>
                <filename>fr-FR.plg_editors-xtd_module.sys.ini</filename>
                <filename>fr-FR.plg_editors-xtd_pagebreak.ini</filename>
                <filename>fr-FR.plg_editors-xtd_pagebreak.sys.ini</filename>
                <!-- Spacer to get past a buggy record count! -->
                <filename>fr-FR.plg_editors-xtd_readmore.ini</filename>
                <filename>fr-FR.plg_editors-xtd_readmore.sys.ini</filename>
                <filename>fr-FR.plg_editors_codemirror.ini</filename>
                <filename>fr-FR.plg_editors_codemirror.sys.ini</filename>
                <filename>fr-FR.plg_editors_none.ini</filename>
                <filename>fr-FR.plg_editors_none.sys.ini</filename>
                <filename>fr-FR.plg_editors_tinymce.ini</filename>
                <filename>fr-FR.plg_editors_tinymce.sys.ini</filename>
                <filename>fr-FR.plg_extension_joomla.ini</filename>
                <filename>fr-FR.plg_extension_joomla.sys.ini</filename>
                <filename>fr-FR.plg_fields_calendar.ini</filename>
                <filename>fr-FR.plg_fields_calendar.sys.ini</filename>
                <filename>fr-FR.plg_fields_checkboxes.ini</filename>
                <filename>fr-FR.plg_fields_checkboxes.sys.ini</filename>
                <filename>fr-FR.plg_fields_color.ini</filename>
                <filename>fr-FR.plg_fields_color.sys.ini</filename>
                <filename>fr-FR.plg_fields_editor.ini</filename>
                <filename>fr-FR.plg_fields_editor.sys.ini</filename>
                <filename>fr-FR.plg_fields_gallery.ini</filename>
                <filename>fr-FR.plg_fields_gallery.sys.ini</filename>
                <filename>fr-FR.plg_fields_image.ini</filename>
                <filename>fr-FR.plg_fields_image.sys.ini</filename>
                <filename>fr-FR.plg_fields_imagelist.ini</filename>
                <filename>fr-FR.plg_fields_imagelist.sys.ini</filename>
                <filename>fr-FR.plg_fields_integer.ini</filename>
                <filename>fr-FR.plg_fields_integer.sys.ini</filename>
                <filename>fr-FR.plg_fields_list.ini</filename>
                <filename>fr-FR.plg_fields_list.sys.ini</filename>
                <filename>fr-FR.plg_fields_media.ini</filename>
                <filename>fr-FR.plg_fields_media.sys.ini</filename>
                <filename>fr-FR.plg_fields_radio.ini</filename>
                <filename>fr-FR.plg_fields_radio.sys.ini</filename>
                <filename>fr-FR.plg_fields_sql.ini</filename>
                <filename>fr-FR.plg_fields_sql.sys.ini</filename>
                <filename>fr-FR.plg_fields_text.ini</filename>
                <filename>fr-FR.plg_fields_text.sys.ini</filename>
                <!-- Spacer to get past a buggy record count! -->
                <filename>fr-FR.plg_fields_textarea.ini</filename>
                <filename>fr-FR.plg_fields_textarea.sys.ini</filename>
                <filename>fr-FR.plg_fields_url.ini</filename>
                <filename>fr-FR.plg_fields_url.sys.ini</filename>
                <filename>fr-FR.plg_fields_user.ini</filename>
                <filename>fr-FR.plg_fields_user.sys.ini</filename>
                <filename>fr-FR.plg_fields_usergrouplist.ini</filename>
                <filename>fr-FR.plg_fields_usergrouplist.sys.ini</filename>
                <filename>fr-FR.plg_finder_categories.ini</filename>
                <filename>fr-FR.plg_finder_categories.sys.ini</filename>
                <filename>fr-FR.plg_finder_contacts.ini</filename>
                <filename>fr-FR.plg_finder_contacts.sys.ini</filename>
                <filename>fr-FR.plg_finder_content.ini</filename>
                <filename>fr-FR.plg_finder_content.sys.ini</filename>
                <filename>fr-FR.plg_finder_newsfeeds.ini</filename>
                <filename>fr-FR.plg_finder_newsfeeds.sys.ini</filename>
                <filename>fr-FR.plg_finder_tags.ini</filename>
                <filename>fr-FR.plg_finder_tags.sys.ini</filename>
                <filename>fr-FR.plg_finder_weblinks.ini</filename>
                <filename>fr-FR.plg_finder_weblinks.sys.ini</filename>
                <filename>fr-FR.plg_installer_folderinstaller.ini</filename>
                <filename>fr-FR.plg_installer_folderinstaller.sys.ini</filename>
                <filename>fr-FR.plg_installer_packageinstaller.ini</filename>
                
<filename>fr-FR.plg_installer_packageinstaller.sys.ini</filename>
                <filename>fr-FR.plg_installer_urlinstaller.ini</filename>
                <filename>fr-FR.plg_installer_urlinstaller.sys.ini</filename>
                <filename>fr-FR.plg_installer_webinstaller.ini</filename>
                <filename>fr-FR.plg_installer_webinstaller.sys.ini</filename>
                <filename>fr-FR.plg_quickicon_extensionupdate.ini</filename>
                <filename>fr-FR.plg_quickicon_extensionupdate.sys.ini</filename>
                <filename>fr-FR.plg_quickicon_joomlaupdate.ini</filename>
                <filename>fr-FR.plg_quickicon_joomlaupdate.sys.ini</filename>
                <filename>fr-FR.plg_quickicon_phpversioncheck.ini</filename>
                <filename>fr-FR.plg_quickicon_phpversioncheck.sys.ini</filename>
                <!-- Spacer to get past a buggy record count! -->
                <filename>fr-FR.plg_search_categories.ini</filename>
                <filename>fr-FR.plg_search_categories.sys.ini</filename>
                <filename>fr-FR.plg_search_contacts.ini</filename>
                <filename>fr-FR.plg_search_contacts.sys.ini</filename>
                <filename>fr-FR.plg_search_content.ini</filename>
                <filename>fr-FR.plg_search_content.sys.ini</filename>
                <filename>fr-FR.plg_search_newsfeeds.ini</filename>
                <filename>fr-FR.plg_search_newsfeeds.sys.ini</filename>
                <filename>fr-FR.plg_search_tags.ini</filename>
                <filename>fr-FR.plg_search_tags.sys.ini</filename>
                <filename>fr-FR.plg_search_weblinks.ini</filename>
                <filename>fr-FR.plg_search_weblinks.sys.ini</filename>
                <filename>fr-FR.plg_system_cache.ini</filename>
                <filename>fr-FR.plg_system_cache.sys.ini</filename>
                <filename>fr-FR.plg_system_debug.ini</filename>
                <filename>fr-FR.plg_system_debug.sys.ini</filename>
                <filename>fr-FR.plg_system_fields.ini</filename>
                <filename>fr-FR.plg_system_fields.sys.ini</filename>
                <filename>fr-FR.plg_system_highlight.ini</filename>
                <filename>fr-FR.plg_system_highlight.sys.ini</filename>
                <filename>fr-FR.plg_system_languagecode.ini</filename>
                <filename>fr-FR.plg_system_languagecode.sys.ini</filename>
                <filename>fr-FR.plg_system_languagefilter.ini</filename>
                <filename>fr-FR.plg_system_languagefilter.sys.ini</filename>
                <filename>fr-FR.plg_system_log.ini</filename>
                <filename>fr-FR.plg_system_log.sys.ini</filename>
                <filename>fr-FR.plg_system_logout.ini</filename>
                <filename>fr-FR.plg_system_logout.sys.ini</filename>
                <filename>fr-FR.plg_system_p3p.ini</filename>
                <filename>fr-FR.plg_system_p3p.sys.ini</filename>
                <filename>fr-FR.plg_system_redirect.ini</filename>
                <filename>fr-FR.plg_system_redirect.sys.ini</filename>
                <filename>fr-FR.plg_system_remember.ini</filename>
                <filename>fr-FR.plg_system_remember.sys.ini</filename>
                <filename>fr-FR.plg_system_sef.ini</filename>
                <filename>fr-FR.plg_system_sef.sys.ini</filename>
                <!-- Spacer to get past a buggy record count! -->
                <filename>fr-FR.plg_system_stats.ini</filename>
                <filename>fr-FR.plg_system_stats.sys.ini</filename>
                <filename>fr-FR.plg_system_updatenotification.ini</filename>
                <filename>fr-FR.plg_system_updatenotification.sys.ini</filename>
                <filename>fr-FR.plg_twofactorauth_totp.ini</filename>
                <filename>fr-FR.plg_twofactorauth_totp.sys.ini</filename>
                <filename>fr-FR.plg_twofactorauth_yubikey.ini</filename>
                <filename>fr-FR.plg_twofactorauth_yubikey.sys.ini</filename>
                <filename>fr-FR.plg_user_contactcreator.ini</filename>
                <filename>fr-FR.plg_user_contactcreator.sys.ini</filename>
                <filename>fr-FR.plg_user_joomla.ini</filename>
                <filename>fr-FR.plg_user_joomla.sys.ini</filename>
                <filename>fr-FR.plg_user_profile.ini</filename>
                <filename>fr-FR.plg_user_profile.sys.ini</filename>
                <filename>fr-FR.tpl_hathor.ini</filename>
                <filename>fr-FR.tpl_hathor.sys.ini</filename>
                <filename>fr-FR.tpl_isis.ini</filename>
                <filename>fr-FR.tpl_isis.sys.ini</filename>
                <!-- This file is mandatory as otherwise the pack can't be 
uninstalled. -->
                <filename file="meta">install.xml</filename>
                <filename file="meta">fr-FR.xml</filename>
        </files>
        <media destination="fr-FR">  <!-- If one needs to add a specific 
calendar -->
            <filename>index.html</filename>
            <filename>js/index.html</filename>
            <filename>js/calendar-setup.js</filename>
            <filename>js/calendar.js</filename>
        </media>
        <params />
</extension>

excerpts from test1.out (showing errors reported at lines 40, 158, 195 in 
test1.xml):

...
   startElement(name="filename",type="typeLanguageFilesFilename",attributes={})
   endElement(name="filename")
   startElement(name="filename",type="typeLanguageFilesFilename",attributes={})
[Error] test1.xml:40:44: cvc-assertion: Assertion evaluation 
('./text()[matches(.,'^([a-z]{2}[a-z]?-[A-Z]{2}\.((((com)|(lib)|(mod(_[a-z][a-z0-9]+)?)|(plg_[a-z][a-z0-9]+(\-[a-z0-9][a-z0-9]+)*)|(tpl))_[a-z][a-z0-9]+(\.sys)?(\.ini))|(ini)|(css)|(localise\.php)))|([a-z]{2}[a-z]?-[A-Z]{2}\.xml)|(install\.xml)$')]')
 for element 'filename' on schema type 'typeLanguageFilesFilename' did not 
succeed. 
[Error] test1.xml:40:44: cvc-assertion: Assertion evaluation ('if 
(matches(text(),'^([a-z]{2}[a-z]?-[A-Z]{2}\.xml)$')) then @file else true()') 
for element 'filename' on schema type 'typeLanguageFilesFilename' did not 
succeed. XPTY0004 : Value does not match a required type.
[Error] test1.xml:40:44: cvc-assertion: Assertion evaluation ('if 
(matches(text(),'^([a-z]{2}[a-z]?-[A-Z]{2}\.xml)$')) then @file[.='meta'] else 
true()') for element 'filename' on schema type 'typeLanguageFilesFilename' did 
not succeed. XPTY0004 : Value does not match a required type.
   endElement(name="filename")
   startElement(name="filename",type="typeLanguageFilesFilename",attributes={})
   endElement(name="filename")
...
   startElement(name="filename",type="typeLanguageFilesFilename",attributes={})
   endElement(name="filename")
   startElement(name="filename",type="typeLanguageFilesFilename",attributes={})
[Error] test1.xml:158:58: cvc-assertion: Assertion evaluation 
('./text()[matches(.,'^([a-z]{2}[a-z]?-[A-Z]{2}\.((((com)|(lib)|(mod(_[a-z][a-z0-9]+)?)|(plg_[a-z][a-z0-9]+(\-[a-z0-9][a-z0-9]+)*)|(tpl))_[a-z][a-z0-9]+(\.sys)?(\.ini))|(ini)|(css)|(localise\.php)))|([a-z]{2}[a-z]?-[A-Z]{2}\.xml)|(install\.xml)$')]')
 for element 'filename' on schema type 'typeLanguageFilesFilename' did not 
succeed. 
[Error] test1.xml:158:58: cvc-assertion: Assertion evaluation ('if 
(matches(text(),'^([a-z]{2}[a-z]?-[A-Z]{2}\.xml)$')) then @file else true()') 
for element 'filename' on schema type 'typeLanguageFilesFilename' did not 
succeed. XPTY0004 : Value does not match a required type.
[Error] test1.xml:158:58: cvc-assertion: Assertion evaluation ('if 
(matches(text(),'^([a-z]{2}[a-z]?-[A-Z]{2}\.xml)$')) then @file[.='meta'] else 
true()') for element 'filename' on schema type 'typeLanguageFilesFilename' did 
not succeed. XPTY0004 : Value does not match a required type.
   endElement(name="filename")
   startElement(name="filename",type="typeLanguageFilesFilename",attributes={})
   endElement(name="filename")
...
   startElement(name="filename",type="typeLanguageFilesFilename",attributes={})
   endElement(name="filename")
   startElement(name="filename",type="typeLanguageFilesFilename",attributes={})
[Error] test1.xml:195:57: cvc-assertion: Assertion evaluation 
('./text()[matches(.,'^([a-z]{2}[a-z]?-[A-Z]{2}\.((((com)|(lib)|(mod(_[a-z][a-z0-9]+)?)|(plg_[a-z][a-z0-9]+(\-[a-z0-9][a-z0-9]+)*)|(tpl))_[a-z][a-z0-9]+(\.sys)?(\.ini))|(ini)|(css)|(localise\.php)))|([a-z]{2}[a-z]?-[A-Z]{2}\.xml)|(install\.xml)$')]')
 for element 'filename' on schema type 'typeLanguageFilesFilename' did not 
succeed. 
[Error] test1.xml:195:57: cvc-assertion: Assertion evaluation ('if 
(matches(text(),'^([a-z]{2}[a-z]?-[A-Z]{2}\.xml)$')) then @file else true()') 
for element 'filename' on schema type 'typeLanguageFilesFilename' did not 
succeed. XPTY0004 : Value does not match a required type.
[Error] test1.xml:195:57: cvc-assertion: Assertion evaluation ('if 
(matches(text(),'^([a-z]{2}[a-z]?-[A-Z]{2}\.xml)$')) then @file[.='meta'] else 
true()') for element 'filename' on schema type 'typeLanguageFilesFilename' did 
not succeed. XPTY0004 : Value does not match a required type.
   endElement(name="filename")
   startElement(name="filename",type="typeLanguageFilesFilename",attributes={})
   endElement(name="filename")
...

xml_diffs.out

Comparing files test1.xml and TEST2.XML
***** test1.xml
                <filename>fr-FR.com_fields.sys.ini</filename>
                <filename>fr-FR.com_finder.ini</filename>
***** TEST2.XML
                <filename>fr-FR.com_fields.sys.ini</filename>
                <!-- Spacer to get past a buggy record count! -->
                <filename>fr-FR.com_finder.ini</filename>
*****

***** test1.xml
                <filename>fr-FR.plg_fields_text.sys.ini</filename>
                <filename>fr-FR.plg_fields_textarea.ini</filename>
***** TEST2.XML
                <filename>fr-FR.plg_fields_text.sys.ini</filename>
                <!-- Spacer to get past a buggy record count! -->
                <filename>fr-FR.plg_fields_textarea.ini</filename>
*****

***** test1.xml
                <filename>fr-FR.plg_quickicon_phpversioncheck.sys.ini</filename>
                <filename>fr-FR.plg_search_categories.ini</filename>
***** TEST2.XML
                <filename>fr-FR.plg_quickicon_phpversioncheck.sys.ini</filename>
                <!-- Spacer to get past a buggy record count! -->
                <filename>fr-FR.plg_search_categories.ini</filename>
*****

***** test1.xml
                <filename>fr-FR.plg_system_sef.sys.ini</filename>
                <filename>fr-FR.plg_system_stats.ini</filename>
***** TEST2.XML
                <filename>fr-FR.plg_system_sef.sys.ini</filename>
                <!-- Spacer to get past a buggy record count! -->
                <filename>fr-FR.plg_system_stats.ini</filename>
*****


John MORRIS.


> ---------- Original Message ----------
> From: JOHN Morris <j.morri...@ntlworld.com.INVALID>
> To: j-users@xerces.apache.org
> Date: 18 August 2020 at 22:04
> Subject: Possible Bug: Xerces 2.12.1 for XML Validation with XSD 1.1 Schema 
> under Java - Plain Text
> 
> Hi,
> 
> I am a relative newcomer to Xerces for XML Validation.
> 
> I have been trying to replicate the results of a tutorial that I found on the 
> Internet. with particular reference to XSD Schema 1.1 features, Over time, I 
> have tried using Xerces 2.12.1, along with various JDK versions (7, 8, 13). 
> Currently, I am using the validation capabilities of the jaxp.TypeInfoWriter 
> program.
> 
> Recently, I have begun to look at the XSD 1.1 assert/assertion features with 
> a longer XML file.
> 
> I have used two sample XML files:
> 
> 1) The first has more than 200 elements, one following hard on the previous 
> one.
> 
> With this file, I find that there are particular line numbers that give 
> trouble in the validation process, although the XML content of those lines 
> appears to be legal and valid.
> 
> Moving the complete XML code from one of the troublesome lines to another 
> position, makes the same code in its new postion pass the validation but now 
> another new error occurs with a new XML contruct, which now appears at the 
> troublesome line number.
> 
> 2) The same XML file as in (1) but with XML comment lines introduced at each 
> of the troublesome line numbers so that no validation is now required at 
> those lines. It should be noted, however, that the troublesome lines from 
> case (1) still appear, immediately after each of the new comment lines. The 
> validation now passes completely.
> 
> I am currently assuming that this behaviour (i.e. the errors) is unexpected.
> 
> I can provide a ZIP file with these test cases. (I did try to send the e-mail 
> posting this incident to the mailing list, complete with the attachment, but 
> it did not post. Can someone tell me whether attachments are supported on 
> this mailing list)?
> 
> The a ZIP file comprises a directory, testX, with following contents:
> 
> java_xercesX.bat - the batch file to run the test cases
> 
> test.xsd - the XSD 1.1 Schema file
> 
> test1.xml - the first XML file, without the extra comment lines
> 
> test2.xml - the second XML file, with the extra comment lines
> 
> xml_diffs.out - the result of a comparison (with the "fc" program) of the 
> content of the two XML files
> 
> In order to be able to run these test cases, you would have to unzip the 
> attached file, go to the testX directory and update the paths in the few few 
> lines of the file java_xercesX.bat to suit your system. Then, to run one test 
> case, you would use:
> 
> java_xercesX  jaxp.TypeInfoWriter test.xsd test1.xml 
> 
> for example, to validate test1.xml. (This batch file currently uses JDK8).
> 
> Results of my validations of the two test files are provided in test1.out and 
> test2.out, also in the testX directory.
> 
> I look forward to getting some feedback on this possible bug.
> 
> Please do not hesitate to ask questions or to point out anything foolish that 
> I have been doing.
> 
> Regards,
> 
> John MORRIS,
> Abingdon, UK.
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: j-users-unsubscr...@xerces.apache.org
> For additional commands, e-mail: j-users-h...@xerces.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: j-users-unsubscr...@xerces.apache.org
For additional commands, e-mail: j-users-h...@xerces.apache.org

Reply via email to