vlad: warum fehler in validierung gegen xsd mit include in Subdir

Beitrag lesen

got it:

xinclude fügt xml:base attribute ein, diese müssenim Kontext erlaubt sein.

über zahllose Fehlversuche und zwischenschritte bin ich dann hier gelandet:

  
  
<?xml version="1.0"?>  
<xs:schema  xmlns:xs="http://www.w3.org/2001/XMLSchema"  
            targetNamespace="http://abc.de"  
            xmlns="http://abc.de"  
            elementFormDefault="qualified">  
  
  <xs:import namespace="http://www.w3.org/XML/1998/namespace"  
             schemaLocation="xml.xsd"/>  
  
  
  <xs:element name="module" type="ModuleType"/>  
  
  <xs:complexType name="ModuleType">  
    <xs:sequence>  
      <xs:element name="components" type="ComponentListType" minOccurs="1" maxOccurs="1"/>  
    </xs:sequence>  
  </xs:complexType>  
  
  <xs:complexType name="ComponentListType">  
    <xs:sequence>  
      <xs:element name="component" type="ComponentType" minOccurs="0" maxOccurs="unbounded"/>  
    </xs:sequence>  
  </xs:complexType>  
  
  <xs:complexType name="ComponentType">  
    <xs:attribute name="name" type="xs:string" use="required"/>  
    <xs:attributeGroup ref="xml:specialAttrs"/>  
  </xs:complexType>  
</xs:schema>  

hier sollte man beachtem, dass das ich das schema xml.xsd hier lokal begelgt hatte, da ich zugriffsschwierigkeiten auf dem Server hatte

ier sollte es eigentlich immer liegen: http://www.w3.org/2001/03/xml.xsd

sollte jemand eine schönere Variante kennen, mit der man global für alle Elemente die specialAttributes erlauben kann, dann immer her damit.

weiterer Punkt für zukünftige Suchende zu dem Thema:
test/TC1.xml:1: Schemas validity error : Element '{http://abc.de}component',attribute '{http://www.w3.org/XML/1998/namespace}base': No matching global attribute declaration available, but demanded by the strict wildcard.

diese Fehlermeldung tritt auf, wenn man einfach nur ein xs:anyAttribute/ einfügt, was das xml:base ja abdecken sollte.