Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
alx_20230801
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Patryk Czarnik
alx_20230801
Commits
5f110e61
Commit
5f110e61
authored
Aug 02, 2023
by
Patryk Czarnik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Eksperymenty z walidacją
parent
bcb1e17c
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
79 additions
and
2 deletions
+79
-2
.gitignore
ObslugaXML/.gitignore
+1
-0
WalidujWaluty3.java
ObslugaXML/src/main/java/walidacja/WalidujWaluty3.java
+74
-0
waluty.xsd
ObslugaXML/waluty.xsd
+1
-0
waluty_2022.xml
ObslugaXML/waluty_2022.xml
+3
-2
No files found.
ObslugaXML/.gitignore
View file @
5f110e61
...
@@ -33,3 +33,4 @@ build/
...
@@ -33,3 +33,4 @@ build/
### Mac OS ###
### Mac OS ###
.DS_Store
.DS_Store
/wynik_walidacji.xml
ObslugaXML/src/main/java/walidacja/WalidujWaluty3.java
0 → 100644
View file @
5f110e61
package
walidacja
;
import
org.w3c.dom.Document
;
import
org.w3c.dom.Node
;
import
org.w3c.dom.ls.DOMImplementationLS
;
import
org.w3c.dom.ls.LSOutput
;
import
org.w3c.dom.ls.LSSerializer
;
import
javax.xml.XMLConstants
;
import
javax.xml.parsers.DocumentBuilder
;
import
javax.xml.parsers.DocumentBuilderFactory
;
import
javax.xml.transform.dom.DOMResult
;
import
javax.xml.transform.dom.DOMSource
;
import
javax.xml.transform.stream.StreamResult
;
import
javax.xml.transform.stream.StreamSource
;
import
javax.xml.validation.Schema
;
import
javax.xml.validation.SchemaFactory
;
import
javax.xml.validation.Validator
;
import
java.io.FileOutputStream
;
public
class
WalidujWaluty3
{
public
static
void
main
(
String
[]
args
)
{
String
plikXML
=
"waluty_2022.xml"
;
String
plikWynikowy
=
"wynik_walidacji.xml"
;
String
plikXSD
=
"waluty.xsd"
;
System
.
out
.
println
(
"Początek programu"
);
try
{
DocumentBuilderFactory
dbf
=
DocumentBuilderFactory
.
newInstance
();
DocumentBuilder
builder
=
dbf
.
newDocumentBuilder
();
Document
doc
=
builder
.
parse
(
plikXML
);
SchemaFactory
sf
=
SchemaFactory
.
newInstance
(
XMLConstants
.
W3C_XML_SCHEMA_NS_URI
);
Schema
schema
=
sf
.
newSchema
(
new
StreamSource
(
plikXSD
));
Validator
validator
=
schema
.
newValidator
();
MojErrorHandler
errorHandler
=
new
MojErrorHandler
();
validator
.
setErrorHandler
(
errorHandler
);
// Można walidować dokument znajdujący się w pamięci.
// Wersja validate z dwoma parametrami pozwala zapisać wynik walidacji, czyli dokument z uzwględnionymi regułami zapisanymi w schemaie.
// Np. uzupełnienie domyślnych atrybutów.
System
.
out
.
println
(
"Start walidacji"
);
DOMResult
domResult
=
new
DOMResult
();
validator
.
validate
(
new
DOMSource
(
doc
),
domResult
);
Node
resultDoc
=
domResult
.
getNode
();
if
(
errorHandler
.
czyBylBlad
())
{
System
.
out
.
println
(
"Koniec walidacji. Dokument zawierał błędy"
);
}
else
{
System
.
out
.
println
(
"Koniec walidacji. Dokument prawidłowy"
);
}
/* Zapisujemy zmieniony uzywajac Load and Save: */
DOMImplementationLS
lsImpl
=
(
DOMImplementationLS
)
builder
.
getDOMImplementation
().
getFeature
(
"LS"
,
"3.0"
);
if
(
lsImpl
==
null
)
{
System
.
err
.
println
(
"Nie udalo sie uzyskac obiektu DOMImplementationLS"
);
return
;
}
LSSerializer
ser
=
lsImpl
.
createLSSerializer
();
LSOutput
out
=
lsImpl
.
createLSOutput
();
/* ustawiamy plik */
out
.
setByteStream
(
new
FileOutputStream
(
plikWynikowy
));
System
.
out
.
println
(
"Poczatek zapisywania."
);
ser
.
write
(
resultDoc
,
out
);
System
.
out
.
println
(
"Koniec."
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
ObslugaXML/waluty.xsd
View file @
5f110e61
...
@@ -6,6 +6,7 @@
...
@@ -6,6 +6,7 @@
<xs:sequence>
<xs:sequence>
<xs:element
name=
"ExchangeRatesTable"
type=
"Tabela"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"ExchangeRatesTable"
type=
"Tabela"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:sequence>
<xs:anyAttribute
namespace=
"http://www.w3.org/2001/XMLSchema-instance"
/>
</xs:complexType>
</xs:complexType>
</xs:element>
</xs:element>
...
...
ObslugaXML/waluty_2022.xml
View file @
5f110e61
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfExchangeRatesTable
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation=
"waluty.xsd"
>
<ArrayOfExchangeRatesTable
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation=
"waluty.xsd"
>
<ExchangeRatesTable>
<ExchangeRatesTable>
<Table>
A
</Table>
<Table>
A
</Table>
<No>
001/A/NBP/2022
</No>
<No>
001/A/NBP/2022
</No>
...
@@ -10,7 +11,7 @@
...
@@ -10,7 +11,7 @@
<Code>
<Code>
THB
THB
</Code>
</Code>
<Mid
>
0.1219
</Mi
d>
<Mid
d>
0.1219
</Mid
d>
</Rate>
</Rate>
<Rate>
<Rate>
<Currency>
dolar amerykański
</Currency>
<Currency>
dolar amerykański
</Currency>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment