0

docbook トピックの制限を表す xsd を作成しました。これは、その基本的な xml の例です。この制限は、docbook 名前空間内で有効でなければなりません。

<?xml version="1.0" encoding="UTF-8"?>
<topic 
    xmlns:xlink="http://www.w3.org/1999/xlink" 
    xmlns="http://docbook.org/ns/docbook"
    xmlns:math="http://www.w3.org/2005/xpath-functions/math" 
    xml:id="TT_LONDON002-003CONTEN" role="imprint">
    <title>title</title>
</topic>

xsd 制限の先頭は次のようになります。酸素では、xml は適切に検証されます。

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
           elementFormDefault="qualified" 
           targetNamespace="http://docbook.org/ns/docbook" 
           xmlns:docbook="http://docbook.org/ns/docbook" 
           xmlns:xlink="http://www.w3.org/1999/xlink">
  <xs:import namespace="http://www.w3.org/1999/xlink" 
             schemaLocation="xlink.xsd"/>
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" 
             schemaLocation="xml.xsd"/>
  <xs:element name="topic">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" 
                    maxOccurs="unbounded" 
                    ref="docbook:title"/>
        <xs:choice>
          <xs:element ref="docbook:mediaobject"/>
          <xs:element minOccurs="0" 
                      maxOccurs="unbounded" 
                      ref="docbook:para"/>
        </xs:choice>
      </xs:sequence>

ただし、ディレクトリ全体を検証するために次のantスクリプトを作成しようとしています。

エラー出力が表示されます: cvc-elt.1.a: 要素 'topic' の宣言が見つかりません。

オンラインで検索していますが、解決策が見つかりません。

<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." default="dist" name="ANTProject">
 <target name="dist">

  <property name="xmlDir" value="../xml/"/>


  <pathconvert dirsep="/" property="xsd.file">
   <path>
    <pathelement location="../xsd/topic.xsd"/>
   </path>
  </pathconvert>


  <xmlvalidate lenient="true" 
               failonerror="false" 
               warn="true" 
               classname="org.apache.xerces.parsers.SAXParser" 
               classpath="../../lib/xercesImpl.jar">
   <fileset dir="${xmlDir}" includes="**/*.xml"/>
   <attribute name="http://xml.org/sax/features/validation" 
              value="true"/>
   <attribute name="http://xml.org/sax/features/namespaces" 
              value="true"/>
   <attribute name="http://apache.org/xml/features/validation/schema" 
              value="true"/>  
   <property name="http://apache.org/xml/properties/schema/external-schemaLocation" 
             value="${xsd.file}"/>
  </xmlvalidate>

 </target>
</project>

何か案は?

ありがとう

コンテ

4

0 に答える 0