title: Prefix cannot be expanded into a namespace URI by using the statically known namespaces
body: <p>I have a Schematron file(.sch). It contains <code>queryBinding</code> attribute which is <code>xslt2</code>. I'm using XRouter Schematron V2.0 to validate my XML file which support XPath 2.  But I get this error:</p>
  
  <blockquote>
    <p>The prefix 'edefter' cannot be expanded into a namespace URI by using the statically known namespaces.</p>
  </blockquote>
  
  <p><code>edefter</code> is root node in XML.</p>
  
  <p>I searched for the error but found nothing.</p>
  
  <pre><code>Here is my schematron:
  &lt;schema xmlns="http://purl.oclc.org/dsdl/schematron" 
      xmlns:sch="http://purl.oclc.org/dsdl/schematron" 
      xmlns:xs="http://www.w3.org/2001/XMLSchema" 
      queryBinding="xslt2"&gt;
  
  &lt;ns prefix="gl-plt" uri="http://www.xbrl.org/int/gl/plt/2010-04-16" /&gt;
  &lt;ns prefix="gl-cor" uri="http://www.xbrl.org/int/gl/cor/2006-10-25" /&gt;
  &lt;ns prefix="gl-bus" uri="http://www.xbrl.org/int/gl/bus/2006-10-25" /&gt;
  &lt;ns prefix="xbrli" uri="http://www.xbrl.org/2003/instance" /&gt;
  &lt;ns prefix="ds" uri="http://www.w3.org/2000/09/xmldsig#" /&gt;
  &lt;ns prefix="xades" uri="http://uri.etsi.org/01903/v1.3.2#" /&gt;
  &lt;ns prefix="edefter" uri="http://www.edefter.gov.tr" /&gt;
  
  &lt;title&gt;Yevmiye defteri dokumanlarını kontrol etmek için gerekli olan schematron kuralları&lt;/title&gt;
  
  &lt;let name="periodCoveredStart" value="/edefter:defter/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:documentInfo/gl-cor:periodCoveredStart"/&gt;
  &lt;let name="periodCoveredEnd" value="/edefter:defter/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:documentInfo/gl-cor:periodCoveredEnd"/&gt;
  &lt;let name="vkn" value="/edefter:defter/xbrli:xbrl/xbrli:context/xbrli:entity/xbrli:identifier"/&gt;
  
  &lt;!-- Yevmiye defterinin ana(kök) elemanı &lt;edefter:defter&gt; olmalıdır. --&gt;
  &lt;pattern id="kok"&gt;
      &lt;rule context="*"&gt;
          &lt;assert test="not(@decimals) or  @decimals = 'INF'"&gt;Belge içerisindeki 'decimals' nitelikleri 'INF' değerini almalıdır.&lt;/assert&gt;
      &lt;/rule&gt;
      &lt;rule context="/"&gt;
          &lt;assert test="edefter:defter"&gt;Yevmiye defteri dokumanı edefter:defter ana elemanı ile başlamalıdır.&lt;/assert&gt;
      &lt;/rule&gt;
  &lt;/pattern&gt;
  
  &lt;!-- Yevmiye defterinin ana(kök) elemanı &lt;edefter:defter&gt; içerisinde imza &lt;ds:Signature&gt; elemanı bulunmalıdır.  --&gt;
  &lt;pattern id="defter"&gt;
      &lt;rule context="/edefter:defter"&gt;
          &lt;assert test="ds:Signature"&gt;ds:Signature zorunlu bir elemandır.&lt;/assert&gt;
      &lt;/rule&gt;
  &lt;/pattern&gt;
  
  &lt;!-- &lt;ds:Signature kontrolleri --&gt;
  &lt;pattern id="signature"&gt;
      &lt;rule context="/edefter:defter/ds:Signature"&gt;
          &lt;let name="signatureMethodAlgorithm" value="ds:SignedInfo/ds:SignatureMethod/@Algorithm"/&gt;
          &lt;assert test="ds:SignedInfo/ds:Reference/ds:Transforms"&gt;ds:SignedInfo/ds:Reference/ds:Transforms elemanı zorunlu bir elemandır.&lt;/assert&gt;
          &lt;assert test="ds:KeyInfo"&gt;ds:KeyInfo elemanı zorunlu bir elemandır.&lt;/assert&gt;
          &lt;assert test="not(ds:KeyInfo) or ds:KeyInfo/ds:KeyValue"&gt;ds:KeyInfo elemanı içerisindeki ds:KeyValue elemanı zorunlu bir elemandır.&lt;/assert&gt;
          &lt;assert test="not(ds:KeyInfo) or ds:KeyInfo/ds:X509Data"&gt;ds:KeyInfo elemanı içerisindeki ds:X509Data elemanı zorunlu bir elemandır.&lt;/assert&gt;            
          &lt;assert test="ds:Object"&gt;ds:Object elemanı zorunlu bir elemandır.&lt;/assert&gt;
          &lt;assert test="not(ds:Object) or ds:Object/xades:QualifyingProperties/xades:SignedProperties/xades:SignedSignatureProperties/xades:SigningTime"&gt;xades:SigningTime elemanı zorunlu bir elemandır.&lt;/assert&gt;
          &lt;assert test="not(ds:Object) or ds:Object/xades:QualifyingProperties/xades:SignedProperties/xades:SignedSignatureProperties/xades:SigningCertificate"&gt;xades:SigningCertificate elemanı zorunlu bir elemandır&lt;/assert&gt;
          &lt;assert test="count(ds:SignedInfo/ds:Reference[@URI = '']) = 1 "&gt;ds:SignedInfo elamanı içerisinde URI niteliği boşluğa("") eşit olan sadece bir tane ds:Reference elemanının bulunmaldır.&lt;/assert&gt;
          &lt;assert test="not(ends-with($signatureMethodAlgorithm,'sha1'))"&gt;İmzalama işleminde kullanılacak özet(hash) algoritması sha1 olmamalıdır.&lt;/assert&gt;
      &lt;/rule&gt;
      &lt;rule context="/edefter:defter/ds:Signature/ds:KeyInfo/ds:X509Data"&gt;
          &lt;assert test="ds:X509SubjectName"&gt;ds:X509Data elemanı içerisindeki ds:X509SubjectName elemanı zorunlu bir elemandır.&lt;/assert&gt;
          &lt;assert test="ds:X509Certificate"&gt;ds:X509Data elemanı içerisindeki ds:X509Certificate elemanı zorunlu bir elemandır.&lt;/assert&gt;
      &lt;/rule&gt;
      &lt;rule context="/edefter:defter/ds:Signature/ds:KeyInfo/ds:X509Data/ds:X509SubjectName"&gt;
          &lt;assert test="string-length(normalize-space(.)) != 0 "&gt; ds:X509SubjectName elemanının değeri boşluk olmamalıdır.&lt;/assert&gt;
      &lt;/rule&gt;
  &lt;/pattern&gt;
  
  &lt;!-- &lt;xbrli:xbrl&gt; elemanı bir &lt;xbrli:context&gt;, en az bir &lt;xbrli:unit&gt; ve bir &lt;gl-cor:accountingEntries&gt; elmanına sahip olmalıdır --&gt;
  &lt;pattern id="xbrl"&gt;
      &lt;rule context="/edefter:defter/xbrli:xbrl"&gt;
          &lt;assert test="count(xbrli:context) = 1 "&gt;xbrli:context zorunlu bir elemandır.&lt;/assert&gt;
          &lt;assert test="count(xbrli:unit) &gt;= 1 "&gt;xbrli:unit zorunlu bir elemandır.&lt;/assert&gt;
          &lt;assert test="count(gl-cor:accountingEntries) = 1 "&gt;gl-cor:accountingEntries zorunlu bir elemandır.&lt;/assert&gt;
      &lt;/rule&gt;
      &lt;rule context="/edefter:defter/xbrli:xbrl/xbrli:context/xbrli:entity/xbrli:identifier"&gt;
          &lt;assert test="matches(normalize-space(.) , '^[0-9]{10,11}$')"&gt;xbrli:identifier elemanına 10 haneli vergi kimlik numarası ve ya 11 haneli TC kimlik numarası yazılmalıdır.&lt;/assert&gt;
      &lt;/rule&gt;     
  &lt;/pattern&gt;
  
  &lt;!-- &lt;gl-cor:accountingEntries&gt; elemanı bir &lt;gl-cor:entityInformation&gt; elemanı içermelidir.  --&gt;
  &lt;pattern id="accountingentries"&gt;
      &lt;rule context="/edefter:defter/xbrli:xbrl/gl-cor:accountingEntries"&gt;
          &lt;assert test="gl-cor:documentInfo"&gt;gl-cor:documentInfo zorunlu bir elemandır.&lt;/assert&gt;
          &lt;assert test="gl-cor:entityInformation"&gt;gl-cor:entityInformation zorunlu bir elemandır.&lt;/assert&gt;
      &lt;/rule&gt;     
  &lt;/pattern&gt;
  
  &lt;!--  &lt;gl-cor:documentInfo&gt; kontrolleri --&gt;
  &lt;pattern id="documentinfo"&gt;
      &lt;rule context="/edefter:defter/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:documentInfo"&gt;
          &lt;assert test="gl-cor:entriesType"&gt;gl-cor:entriesType zorunlu bir elemandır.&lt;/assert&gt;
          &lt;assert test="normalize-space(gl-cor:entriesType) = 'journal'"&gt;gl-cor:entriesType elemanı yevmiye defteri için 'journal' değerini almalıdır.&lt;/assert&gt;
  
          &lt;assert test="gl-cor:uniqueID"&gt;gl-cor:uniqueID zorunlu bir elemandır.&lt;/assert&gt;
          &lt;assert test="not(gl-cor:uniqueID) or starts-with(normalize-space(gl-cor:uniqueID),'YEV')"&gt;gl-cor:uniqueID elemanı yevmiye defteri için 'YEV' değeri ile başlamalıdır.&lt;/assert&gt;
          &lt;assert test="not(gl-cor:uniqueID) or string-length(normalize-space(gl-cor:uniqueID)) = 11 or string-length(normalize-space(gl-cor:uniqueID)) = 13 "&gt;gl-cor:uniqueID elemanı 13 karakterden oluşmalıdır.&lt;/assert&gt;
  
          &lt;assert test="gl-cor:creationDate"&gt;gl-cor:creationDate zorunlu bir elemandır.&lt;/assert&gt;
  
          &lt;assert test="gl-cor:periodCoveredStart"&gt;gl-cor:periodCoveredStart zorunlu bir elemandır.&lt;/assert&gt;
          &lt;assert test="gl-cor:periodCoveredEnd"&gt;gl-cor:periodCoveredEnd zorunlu bir elemandır.&lt;/assert&gt;
          &lt;assert test="gl-cor:periodCoveredEnd &gt;= gl-cor:periodCoveredStart"&gt;gl-cor:periodCoveredEnd elemanı gl-cor:periodCoveredStart elemanından büyük ve ya eşit olmalıdır.&lt;/assert&gt;
  
          &lt;assert test="gl-cor:creationDate &gt;= gl-cor:periodCoveredEnd"&gt;gl-cor:creationDate elemanı gl-cor:periodCoveredEnd elemanından büyük ve ya eşit olmalıdır.&lt;/assert&gt;
  
          &lt;assert test="string-length(normalize-space(gl-bus:sourceApplication)) &gt; 0"&gt;gl-bus:sourceApplication zorunlu bir elemandır ve değeri boşluk olmamalıdır.&lt;/assert&gt;
      &lt;/rule&gt;
  &lt;/pattern&gt;
  
  &lt;!-- &lt;gl-cor:entityInformation&gt; kontrolleri --&gt;
  &lt;pattern id="entityinformation"&gt;
      &lt;rule context="/edefter:defter/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:entityInformation"&gt;
          &lt;assert test="gl-bus:entityPhoneNumber"&gt;gl-bus:entityPhoneNumber zorunlu bir elemandır.&lt;/assert&gt;
  
          &lt;assert test="gl-bus:entityEmailAddressStructure"&gt;gl-bus:entityEmailAddressStructure zorunlu bir elemandır.&lt;/assert&gt;
  
          &lt;assert test="count(gl-bus:organizationIdentifiers) &gt;= 1"&gt;gl-bus:organizationIdentifiers zorunlu bir elemandır.&lt;/assert&gt;
          &lt;assert test="not(string-length($vkn) = 10) or count(gl-bus:organizationIdentifiers[gl-bus:organizationDescription = 'Kurum Unvanı']) = 1"&gt;gl-bus:organizationDescription değeri 'Kurum Unvanı' olan bir tane gl-bus:organizationIdentifiers elemanı bulunmalıdır.&lt;/assert&gt;
          &lt;assert test="not(string-length($vkn) = 11) or count(gl-bus:organizationIdentifiers[gl-bus:organizationDescription = 'Adı Soyadı']) = 1"&gt;gl-bus:organizationDescription değeri 'Adı Soyadı' olan bir tane gl-bus:organizationIdentifiers elemanı bulunmalıdır.&lt;/assert&gt;
  
          &lt;let name="countKurumUnvani" value="count(gl-bus:organizationIdentifiers[gl-bus:organizationDescription = 'Kurum Unvanı'])"/&gt;
          &lt;let name="countAdiSoyadi" value="count(gl-bus:organizationIdentifiers[gl-bus:organizationDescription = 'Adı Soyadı'])"/&gt;
  
          &lt;assert test="($countKurumUnvani=1 and not($countAdiSoyadi=1)) or ($countAdiSoyadi=1 and not($countKurumUnvani=1))"&gt;gl-bus:organizationDescription değeri 'Kurum Unvanı' veya 'Adı Soyadı' olan yalnızca bir tane gl-bus:organizationIdentifiers elemanı bulunmalıdır.&lt;/assert&gt;
  
          &lt;assert test="not(count(gl-bus:organizationIdentifiers[gl-bus:organizationDescription = 'Kurum Unvanı']) = 1) or 
              string-length(normalize-space(gl-bus:organizationIdentifiers[gl-bus:organizationDescription = 'Kurum Unvanı']/gl-bus:organizationIdentifier)) &gt;=2"&gt;gl-bus:organizationDescription değeri 'Kurum Unvanı' olan gl-bus:organizationIdentifiers elemanının  gl-bus:organizationIdentifier eleman değeri en az iki karakter olmalıdır.&lt;/assert&gt;
          &lt;assert test="not(count(gl-bus:organizationIdentifiers[gl-bus:organizationDescription = 'Adı Soyadı']) = 1) or 
              string-length(normalize-space(gl-bus:organizationIdentifiers[gl-bus:organizationDescription = 'Adı Soyadı']/gl-bus:organizationIdentifier)) &gt;=2"&gt;gl-bus:organizationDescription değeri 'Adı Soyadı' olan gl-bus:organizationIdentifiers elemanının  gl-bus:organizationIdentifier eleman değeri en az iki karakter olmalıdır.&lt;/assert&gt;
  
          &lt;let name="countSubeNo" value="count(gl-bus:organizationIdentifiers[gl-bus:organizationDescription = 'Şube No'])"/&gt;
          &lt;let name="countSubeAdi" value="count(gl-bus:organizationIdentifiers[gl-bus:organizationDescription = 'Şube Adı'])"/&gt;
  
          &lt;assert test="(not($countSubeNo = 1) or $countSubeAdi = 1) and (not($countSubeAdi = 1) or $countSubeNo = 1)"&gt;Şube no ve şube adı birlikte bulunmalıdır.&lt;/assert&gt;
  
          &lt;assert test="($countSubeNo &amp;lt; 2) and ($countSubeAdi &amp;lt; 2)"&gt;Şube no veya şube adı birden fazla olamaz.&lt;/assert&gt;
  
          &lt;assert test="not($countSubeNo = 1) or matches(normalize-space(gl-bus:organizationIdentifiers[gl-bus:organizationDescription = 'Şube No']/gl-bus:organizationIdentifier) , '^[0-9]{4}$')"&gt;Şube no 4 haneli sayısal bir değer olmalıdır.&lt;/assert&gt;
  
          &lt;assert test="not($countSubeAdi = 1) or string-length(normalize-space(gl-bus:organizationIdentifiers[gl-bus:organizationDescription = 'Şube Adı']/gl-bus:organizationIdentifier)) &gt;= 2"&gt;Şube adı değeri en az iki karakter olmalıdır.&lt;/assert&gt;          
  
          &lt;assert test="gl-bus:organizationAddress"&gt;gl-bus:organizationAddress zorunlu bir elemandır.&lt;/assert&gt;
          &lt;assert test="not(gl-bus:organizationAddress) or gl-bus:organizationAddress/gl-bus:organizationBuildingNumber"&gt;gl-bus:organizationAddress elemanı içerisindeki gl-bus:organizationBuildingNumber zorunlu bir elemandır.&lt;/assert&gt;
          &lt;assert test="not(gl-bus:organizationAddress) or gl-bus:organizationAddress/gl-bus:organizationAddressStreet"&gt;gl-bus:organizationAddress elemanı içerisindeki gl-bus:organizationAddressStreet zorunlu bir elemandır.&lt;/assert&gt;
          &lt;assert test="not(gl-bus:organizationAddress) or gl-bus:organizationAddress/gl-bus:organizationAddressCity"&gt;gl-bus:organizationAddress elemanı içerisindeki gl-bus:organizationAddressCity zorunlu bir elemandır.&lt;/assert&gt;
          &lt;assert test="not(gl-bus:organizationAddress) or gl-bus:organizationAddress/gl-bus:organizationAddressZipOrPostalCode"&gt;gl-bus:organizationAddress' elemanı içerisindeki 'gl-bus:organizationAddressZipOrPostalCode zorunlu bir elemandır.&lt;/assert&gt;
          &lt;assert test="not(gl-bus:organizationAddress) or gl-bus:organizationAddress/gl-bus:organizationAddressCountry"&gt;gl-bus:organizationAddress elemanı içerisindeki gl-bus:organizationAddressCountry zorunlu bir elemandır.&lt;/assert&gt;
  
          &lt;assert test="gl-bus:entityWebSite"&gt;gl-bus:entityWebSite zorunlu bir elemandır.&lt;/assert&gt;            
  
          &lt;assert test="string-length(normalize-space(gl-bus:businessDescription)) &gt; 0"&gt;gl-bus:businessDescription zorunlu bir elemandır ve değeri boşluk olmamalıdır.&lt;/assert&gt;
  
          &lt;assert test="gl-bus:fiscalYearStart"&gt;gl-bus:fiscalYearStart zorunlu bir elemandır.&lt;/assert&gt;            
          &lt;assert test="gl-bus:fiscalYearEnd"&gt;gl-bus:fiscalYearEnd zorunlu bir elemandır.&lt;/assert&gt;
          &lt;assert test="gl-bus:fiscalYearEnd &gt; gl-bus:fiscalYearStart"&gt;gl-bus:fiscalYearEnd elemanı gl-bus:fiscalYearStart elemanından büyük olmalıdır.&lt;/assert&gt;
  
          &lt;assert test="gl-bus:accountantInformation"&gt;gl-bus:accountantInformation zorunlu bir elemandır.&lt;/assert&gt;            
      &lt;/rule&gt;
      &lt;rule context="/edefter:defter/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:entityInformation/gl-bus:accountantInformation"&gt;
          &lt;assert test="string-length(normalize-space(gl-bus:accountantName)) &gt; 0"&gt;gl-bus:accountantInformation elemanı içerisindeki gl-bus:accountantName zorunlu bir elemandır ve değeri boşluk olmamalıdır.&lt;/assert&gt;
          &lt;assert test="string-length(normalize-space(gl-bus:accountantEngagementTypeDescription)) &gt; 0"&gt;gl-bus:accountantInformation elemanı içerisindeki gl-bus:accountantEngagementTypeDescription zorunlu bir elemandır  ve değeri boşluk olmamalıdır.&lt;/assert&gt;
      &lt;/rule&gt;
      &lt;rule context="/edefter:defter/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:entityInformation/gl-bus:entityPhoneNumber"&gt;
          &lt;assert test="string-length(normalize-space(gl-bus:phoneNumber)) &gt; 0"&gt;gl-bus:phoneNumber zorunlu bir elemandır ve değeri boşluk olmamalıdır.&lt;/assert&gt;           
      &lt;/rule&gt;
      &lt;rule context="/edefter:defter/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:entityInformation/gl-bus:entityEmailAddressStructure"&gt;
          &lt;assert test="string-length(normalize-space(gl-bus:entityEmailAddress)) &gt; 0"&gt;gl-bus:entityEmailAddressStructure elemanı içerisinde gl-bus:entityEmailAddress zorunlu bir elemandır ve  ve değeri boşluk olmamalıdır.&lt;/assert&gt;       
      &lt;/rule&gt;
      &lt;rule context="/edefter:defter/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:entityInformation/gl-bus:entityWebSite"&gt;
          &lt;assert test="gl-bus:webSiteURL"&gt;gl-bus:entityWebSite elemanı içerisindeki gl-bus:webSiteURL zorunlu bir elemandır.&lt;/assert&gt;
      &lt;/rule&gt;
  &lt;/pattern&gt;
  
  &lt;!-- &lt;gl-cor:entryHeader&gt; kontrolleri --&gt;
  &lt;pattern id="entryheader"&gt;
      &lt;rule context="/edefter:defter/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:entryHeader"&gt;
          &lt;assert test="not(following::node()) or not(following::node()/gl-cor:entryNumberCounter) or not(gl-cor:entryNumberCounter) or following::node()/gl-cor:entryNumberCounter = gl-cor:entryNumberCounter + 1" &gt;gl-cor:entryNumberCounter müteselsil bir değere sahip olmalıdır.&lt;/assert&gt;
  
          &lt;assert test="not(following::node()) or not(following::node()/gl-cor:enteredDate) or not(gl-cor:enteredDate) or following::node()/gl-cor:enteredDate &gt;= gl-cor:enteredDate"&gt;Yevmiye defteri tarihe göre sıralı olmalıdır.&lt;/assert&gt;
  
          &lt;assert test="gl-cor:enteredBy"&gt;gl-cor:enteredBy zorunlu bir elemandır.&lt;/assert&gt;
          &lt;assert test="not(gl-cor:enteredBy) or string-length(normalize-space(gl-cor:enteredBy)) &gt;= 2"&gt;gl-cor:enteredBy elemanı en az iki karakter olmamalıdır.&lt;/assert&gt;
  
          &lt;assert test="gl-cor:enteredDate"&gt;gl-cor:enteredDate zorunlu bir elemandır.&lt;/assert&gt;
          &lt;assert test="not(gl-cor:enteredDate) or (gl-cor:enteredDate &gt;= $periodCoveredStart and gl-cor:enteredDate &amp;lt;= $periodCoveredEnd)"&gt;gl-cor:enteredDate elemanın değeri &lt;value-of select="$periodCoveredStart"/&gt; ile &lt;value-of select="$periodCoveredEnd"/&gt; değerleri arasında olmalıdır.&lt;/assert&gt;
  
          &lt;assert test="gl-bus:totalDebit"&gt;gl-bus:totalDebit zorunlu bir elemandır.&lt;/assert&gt;  
          &lt;assert test="gl-bus:totalCredit"&gt;gl-bus:totalCredit zorunlu bir elemandır.&lt;/assert&gt;
          &lt;assert test="gl-cor:entryNumberCounter"&gt;gl-cor:entryNumberCounter zorunlu bir elemandır.&lt;/assert&gt;
          &lt;assert test="count(gl-cor:entryDetail) &gt; 1"&gt;gl-cor:entryHeader elemanı en az iki gl-cor:entryDetail elemanı içermelidir.&lt;/assert&gt;
  
          &lt;assert test="gl-bus:totalDebit = gl-bus:totalCredit"&gt;gl-bus:totalDebit elemanının değeri gl-bus:totalCredit elemanının değerine eşit olmalıdır.&lt;/assert&gt; 
          &lt;assert test="gl-bus:totalDebit = sum(gl-cor:entryDetail[gl-cor:debitCreditCode = 'D' or gl-cor:debitCreditCode = 'debit']/xs:decimal(gl-cor:amount))"&gt;gl-bus:totalDebit değeri, gl-cor:entryDetail elemanı içerisindeki gl-cor:debitCreditCode değeri 'D' ve ya 'debit' olan gl-cor:amount değelerinin toplamına eşit olmalıdır.&lt;/assert&gt;
          &lt;assert test="gl-bus:totalCredit = sum(gl-cor:entryDetail[gl-cor:debitCreditCode = 'C' or gl-cor:debitCreditCode = 'credit']/xs:decimal(gl-cor:amount))"&gt;gl-bus:totalCredit değeri, gl-cor:entryDetail elemanı içerisindeki gl-cor:debitCreditCode değeri 'C' ve ya 'credit' olan gl-cor:amount değerlerinin toplamına eşit olmalıdır.&lt;/assert&gt;
  
      &lt;/rule&gt;
  &lt;/pattern&gt;
  
  &lt;!-- &lt;gl-cor:entryDetail&gt; kontrolleri --&gt;
  &lt;pattern id="entrydetail"&gt;
      &lt;rule context="/edefter:defter/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:entryHeader/gl-cor:entryDetail"&gt;
          &lt;assert test="gl-cor:lineNumber"&gt;gl-cor:lineNumber zorunlu bir elemandır.&lt;/assert&gt;
          &lt;assert test="not(following::node()) or not(following::node()/gl-cor:lineNumber) or not(gl-cor:lineNumber) or following::node()/number(gl-cor:lineNumber) = number(gl-cor:lineNumber) + 1" &gt;gl-cor:lineNumber müteselsil bir değere sahip olmalıdır.&lt;/assert&gt;
  
          &lt;assert test="gl-cor:lineNumberCounter"&gt;gl-cor:lineNumberCounter zorunlu bir elemandır.&lt;/assert&gt;            
          &lt;assert test="not(gl-cor:lineNumberCounter) or not(parent::node()/gl-cor:entryNumberCounter) or gl-cor:lineNumberCounter = parent::node()/gl-cor:entryNumberCounter"&gt;gl-cor:lineNumberCounter elemanının değeri bir üst düzeydeki gl-cor:entryNumberCounter elemanının değerine eşit olmalıdır.&lt;/assert&gt;
  
          &lt;assert test="gl-cor:account"&gt;gl-cor:account zorunlu bir elemandır.&lt;/assert&gt;
          &lt;assert test="not(gl-cor:account) or not(gl-cor:account/gl-cor:accountMainID) or string-length(gl-cor:account/normalize-space(gl-cor:accountMainID)) = 3 or string-length(gl-cor:account/normalize-space(gl-cor:accountMainID)) = 4"&gt;gl-cor:account elemanı içerisinde gl-cor:accountMainID zorunlu bir elemandır ve en az 3 karakter olmalıdır.&lt;/assert&gt;
          &lt;assert test="not(gl-cor:account) or gl-cor:account/gl-cor:accountMainDescription"&gt;gl-cor:account elemanı içerisinde gl-cor:accountMainDescription zorunlu bir elemandır.&lt;/assert&gt;
          &lt;assert test="not(gl-cor:account/gl-cor:accountSub) or gl-cor:account/gl-cor:accountSub/gl-cor:accountSubID"&gt;gl-cor:accountSub elemanı içerisinde gl-cor:accountSubID zorunlu bir elemandır.&lt;/assert&gt;           
          &lt;assert test="not(gl-cor:account/gl-cor:accountSub) or gl-cor:account/gl-cor:accountSub/gl-cor:accountSubDescription"&gt;gl-cor:accountSub elemanı içerisinde gl-cor:accountSubDescription zorunlu bir elemandır.&lt;/assert&gt;
  
          &lt;let name="anaHesapId" value="gl-cor:account/normalize-space(gl-cor:accountMainID)"/&gt;
          &lt;let name="altHesapId" value="gl-cor:account/normalize-space(gl-cor:accountSub/gl-cor:accountSubID)"/&gt;
          &lt;assert test="not($anaHesapId) or not($altHesapId) or starts-with($altHesapId, $anaHesapId)"&gt;gl-cor:accountSubID(alt hesap numarası) elemanı gl-cor:accountMainID(ana hesap numarası) değeri ile başlamalıdır.&lt;/assert&gt;
  
          &lt;assert test="gl-cor:amount"&gt;gl-cor:amount zorunlu bir elemandır.&lt;/assert&gt;
          &lt;assert test="not(gl-cor:amount) or gl-cor:amount &gt; 0"&gt;gl-cor:amount elemanı 0'dan büyük bir değer almalıdır.&lt;/assert&gt;
  
          &lt;assert test="gl-cor:debitCreditCode"&gt;gl-cor:debitCreditCode zorunlu bir elemandır.&lt;/assert&gt;    
  
          &lt;assert test="gl-cor:postingDate"&gt;gl-cor:postingDate zorunlu bir elemandır.&lt;/assert&gt;
          &lt;assert test="not(gl-cor:postingDate) or not(parent::node()/gl-cor:enteredDate) or gl-cor:postingDate = parent::node()/gl-cor:enteredDate"&gt;gl-cor:postingDate elemanının değeri bir üst düzeydeki gl-cor:enteredDate elemanının değerine eşit olmalıdır.&lt;/assert&gt;
  
          &lt;assert test="not(normalize-space(gl-cor:documentType) = 'other') or string-length(normalize-space(gl-cor:documentTypeDescription)) &gt; 0"&gt;gl-cor:documentType eleman değerinin 'other' olması durumunda gl-cor:documentTypeDescription zorunlu bir elemandır ve değeri boşluk olmamalıdır.&lt;/assert&gt;
          &lt;assert test="not(normalize-space(gl-cor:documentType) = 'invoice') or (string-length(normalize-space(gl-cor:documentNumber)) &gt; 0 and gl-cor:documentDate)"&gt;gl-cor:documentType elemanının değeri 'invoice' (fatura) olması durumunda gl-cor:documentNumber ve gl-cor:documentDate elemanlarıda olmalıdır.&lt;/assert&gt;
          &lt;assert test="not(normalize-space(gl-cor:documentType) = 'check') or (string-length(normalize-space(gl-cor:documentNumber)) &gt; 0 and gl-cor:documentDate)"&gt;gl-cor:documentType elemanının değeri 'check' (çek) olması durumunda gl-cor:documentNumber ve gl-cor:documentDate elemanlarıda olmalıdır.&lt;/assert&gt;
  
          &lt;assert test="not(gl-cor:documentNumber) or gl-cor:documentType"&gt;gl-cor:documentNumber elemanı olması durumunda gl-cor:documentType elemanı bulunmalıdır.&lt;/assert&gt;
          &lt;assert test="not(gl-cor:documentDate) or gl-cor:documentType"&gt;gl-cor:documentDate elemanı olması durumunda gl-cor:documentType elemanı bulunmalıdır.&lt;/assert&gt;
  
          &lt;assert test="not(gl-cor:documentReference) or not(parent::node()/gl-cor:entryNumber) or gl-cor:documentReference = parent::node()/gl-cor:entryNumber"&gt;gl-cor:documentReference elemanının değeri bir üst düzeydeki gl-cor:entryNumber elemanının değerine eşit olmalıdır.&lt;/assert&gt;
  
          &lt;assert test="not(gl-bus:paymentMethod) or string-length(normalize-space(gl-bus:paymentMethod)) &gt; 0 "&gt;gl-bus:paymentMethod elemanı var ise değeri boşluk olmamalıdır.&lt;/assert&gt;
      &lt;/rule&gt;
  &lt;/pattern&gt;
  </code></pre>
  
  <p>   </p>