Pronašao sam ovo:
Code (delphi):var
XML, XSDL: Variant;
begin
XSDL := CreateOLEObject('MSXML2.XMLSchemaCache.4.0');
XSDL.validateOnLoad := True;
XSDL.add('http://e-porezna.porezna-uprav...eme/zahtjevi/ObrazacJOPPD/v1-0','C:\jpd\ObrazacJOPPDtipovi-v1-0.xsd'); // 1st argument is target namespace
ShowMessage('Schema Loaded');
XML := CreateOLEObject('MSXML2.DOMDocument.4.0');
XML.validateOnParse := True;
XML.resolveExternals := True;
XML.schemas := XSDL;
XML.load('C:\jpd\file.xml');
ShowMessage(XML.parseError.reason);
ali mi nije najjasnije kako to funkcionira. Definira se namespace iz sheme i onda valjda po tom namespace-u vrti po xml file-u?
Meni je situacija ovakva npr.
imam
file.xml koje sadrži npr. slijedeće:
Code:<ObrazacJOPPD verzijaSheme="1.0" xmlns="http://e-porezna.porezna-uprav...eme/zahtjevi/ObrazacJOPPD/v1-0">
<Metapodaci xmlns="http://e-porezna.porezna-uprava.hr/sheme/Metapodaci/v2-0">
<Naslov dc="http://purl.org/dc/elements/1.1/title">Izvješće o primicima, porezu na dohodak i prirezu te doprinosima za obvezna osiguranja</Naslov>
<Autor dc="http://purl.org/dc/elements/1.1/creator">Ime prezime</Autor>
<Datum dc="http://purl.org/dc/elements/1.1/date">2015-02-16T08:01:54</Datum>
<Format dc="http://purl.org/dc/elements/1.1/format">text/xml</Format>
<Jezik dc="http://purl.org/dc/elements/1.1/language">hr-HR</Jezik>
<Identifikator dc="http://purl.org/dc/elements/1.1/identifier">23ff9eb4-ae34-4c23-b533-43020d6980a5</Identifikator>
<Uskladjenost dc="http://purl.org/dc/terms/conformsTo">ObrazacJOPPD-v1-0</Uskladjenost>
<Tip dc="http://purl.org/dc/elements/1.1/type">Elektronički obrazac</Tip>
<Adresant>Ministarstvo Financija, Porezna uprava, Zagreb</Adresant>
</Metapodaci>
<StranaA>
<DatumIzvjesca>2015-02-16</DatumIzvjesca>
<OznakaIzvjesca>15047</OznakaIzvjesca>
<VrstaIzvjesca>1</VrstaIzvjesca>
<PodnositeljIzvjesca>
<Naziv>Test poduzeće d.o.o.</Naziv>
<Adresa>
<Mjesto>Zagreb</Mjesto>
<Ulica>Test adresa</Ulica>
<Broj>1</Broj>
</Adresa>
<Email>
[email protected]</Email>
<OIB>012345678945</OIB>
<Oznaka>1</Oznaka>
</PodnositeljIzvjesca>
<BrojOsoba>93</BrojOsoba>
<BrojRedaka>113</BrojRedaka>
<PredujamPoreza>
<P1>0.00</P1>
<P11>0.00</P11>
...
zatim imam
TemeljniTipovi-v2-1.xsd koji sadrži npr. slijedeće:
Code:
<?xml version="1.0" encoding="UTF-8" ?>
- <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://e-porezna.porezna-uprava.hr/sheme/TemeljniTipovi/v2-1" targetNamespace="http://e-porezna.porezna-uprava.hr/sheme/TemeljniTipovi/v2-1" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.1" id="TemeljniTipovi-v2-1" xml:lang="hr-HR">
- <xsd:annotation>
<xsd:documentation>Shema sadrži temeljne jednostavne tipove koji se koriste u ostalim shemama</xsd:documentation>
</xsd:annotation>
- <xsd:simpleType name="tDecimal14-2">
- <xsd:annotation>
<xsd:documentation>Decimalni broj u formatu 14.2 (14 znamenki ukupno uključivši do dva decimalna mjesta)</xsd:documentation>
</xsd:annotation>
- <xsd:restriction base="xsd:decimal">
<xsd:totalDigits value="14" />
<xsd:fractionDigits value="2" />
</xsd:restriction>
</xsd:simpleType>
...
i zatim imam
ObrazacJOPPDtipovi-v1-0.xsd koji sadrži npr. slijedeće:
Code:
<?xml version="1.0" encoding="UTF-8" ?>
- <!-- edited with XMLSpy v2007 (http://www.altova.com) by Željko Mikic (Teched Consulting Ltd)
-->
- <xsd:schema xmlns="http://e-porezna.porezna-uprav...eme/zahtjevi/ObrazacJOPPD/v1-0" xmlns:meta="http://e-porezna.porezna-uprava.hr/sheme/Metapodaci/v2-0" xmlns:ispostave="http://e-porezna.porezna-uprav...meljno/SifrarnikIspostave/v2-0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:temeljni="http://e-porezna.porezna-uprava.hr/sheme/TemeljniTipovi/v2-1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://e-porezna.porezna-uprav...eme/zahtjevi/ObrazacJOPPD/v1-0" elementFormDefault="qualified" version="1.0" id="ObrazacJOPPDtipovi-v1-0" xml:lang="hr-HR">
- <xsd:annotation>
<xsd:documentation>XML shema sadrži tipove koji definiraju sadržaj JOPPD obrasca</xsd:documentation>
</xsd:annotation>
<xsd:import namespace="http://e-porezna.porezna-uprava.hr/sheme/TemeljniTipovi/v2-1" schemaLocation="TemeljniTipovi-v2-1.xsd" />
<xsd:import namespace="http://e-porezna.porezna-uprava.hr/sheme/Metapodaci/v2-0" schemaLocation="ObrazacJOPPDmetapodaci-v1-0.xsd" />
...
- <xsd:element name="IsplaceniNeoporeziviPrimici" type="temeljni:tNonNegativeDecimal15-2" minOccurs="0">
- <xsd:annotation>
<xsd:documentation>VII. ISPLAĆENI NEOPOREZIVI PRIMICI</xsd:documentation>
</xsd:annotation>
</xsd:element>
...
i sada ja moram provjeriti da li polje VII. ISPLAĆENI NEOPOREZIVI PRIMICI ima u sebi vrijednost tDecimal14-2.
Eto, nadam se da sam bio jasan, nisam puno radio sa xml-ovima pa bi mi pomoć bila dobrodošla
Hvala!
F