franta-hg@2
|
1 |
Slouží k načítání souborů ve všelijakých syntaxích (json, ini atd.) tak,
|
franta-hg@2
|
2 |
aby s nimi následně šlo pracovat jako s XML.
|
franta-hg@2
|
3 |
|
franta-hg@2
|
4 |
SAXParserFactory → SAXParser → XMLReader
|
franta-hg@2
|
5 |
|
franta-hg@2
|
6 |
Nejdůležitější je XMLReader, tam se provádí vlastní načítání exotického souboru.
|
franta-hg@2
|
7 |
|
franta-hg@2
|
8 |
Aby se použila správná (naše) továrna, je potřeba udělat něco z následujícího:
|
franta-hg@2
|
9 |
– nastavit systémovou vlastnost „javax.xml.parsers.SAXParserFactory“
|
franta-hg@2
|
10 |
– použít Services API… viz JavaDoc k newInstance()
|
franta-hg@2
|
11 |
– předat název třídy továrny jako parametr newInstance(…, …);
|
franta-hg@2
|
12 |
|
franta-hg@2
|
13 |
Pak načítáme soubory, jako by to bylo XML:
|
franta-hg@2
|
14 |
SAXParserFactory továrna = SAXParserFactory.newInstance();
|
franta-hg@2
|
15 |
SAXParser parser = továrna.newSAXParser();
|
franta-hg@2
|
16 |
parser.parse(new File("data/vstup.json"), h);
|
franta-hg@2
|
17 |
|
franta-hg@2
|
18 |
Nikde sice nejsou žádné ostré závorky (např. JSON používá {} a []),
|
franta-hg@2
|
19 |
ale používáme stejné API a všechny navazující nástroje jako u opravdového XML.
|
franta-hg@2
|
20 |
|
franta-hg@2
|
21 |
Náš SAXParser používá SuperXMLReader, který rozhoduje, který konkrétní parser se použije.
|
franta-hg@2
|
22 |
|
franta-hg@12
|
23 |
|
franta-hg@12
|
24 |
Moduly řešit přes Features?
|
franta-hg@12
|
25 |
|
franta-hg@12
|
26 |
Vstupní formáty:
|
franta-hg@12
|
27 |
JSON
|
franta-hg@12
|
28 |
INI (sekce + klíč=hodnota)
|
franta-hg@12
|
29 |
CSV (hlavičky → elementy)
|
franta-hg@12
|
30 |
Javovské Properties a podobné (pozor na komentáře)
|
franta-hg@12
|
31 |
HTML (zprasené, atributy bez uvozovek, atd.)
|
franta-hg@12
|
32 |
TXT (co řádek, to element)
|
franta-hg@12
|
33 |
ASN.1
|
franta-hg@12
|
34 |
Linuxové konfiguráky, API a příkazy – /etc, /proc, /sys …
|
franta-hg@12
|
35 |
|
franta-hg@12
|
36 |
|
franta-hg@12
|
37 |
Odkazy:
|
franta-hg@12
|
38 |
TagSoup: http://mercury.ccil.org/~cowan/XML/tagsoup/
|
franta-hg@12
|
39 |
HotSAX: http://hotsax.sourceforge.net/ – HotSAX is a small fast SAX2 parser for HTML, XHTML and XML.
|
franta-hg@12
|
40 |
XOM: http://www.cafeconleche.org/XOM/ – XOM is fairly unique in that it is a dual streaming/tree-based API.
|
franta-hg@12
|
41 |
Jericho: http://jericho.htmlparser.net/docs/javadoc/net/htmlparser/jericho/StreamedSource.html – Iterátor
|
franta-hg@12
|
42 |
SAX → DOM: http://www.java2s.com/Code/Java/XML/SaxtoDOMconverter.htm
|
franta-hg@12
|
43 |
XMLUnit: http://xmlunit.sourceforge.net/api/org/custommonkey/xmlunit/TolerantSaxDocumentBuilder.html
|
franta-hg@12
|
44 |
ASN.1
|
franta-hg@12
|
45 |
http://www.lupa.cz/clanky/asn-1-8211-koncept-abstraktni-syntaxove-notace/
|
franta-hg@12
|
46 |
http://www.root.cz/clanky/analogie-asn1/
|
franta-hg@12
|
47 |
http://www.research.ibm.com/trl/projects/xml/xss4j/samples/asn1/Translator.java
|
franta-hg@12
|
48 |
http://www.bouncycastle.org/ – Pěkná knihovna pro práci s ASN.1 v Javě je součástí Bouncy Castle Crypto APIs
|
franta-hg@12
|
49 |
https://en.wikipedia.org/wiki/XML_Encoding_Rules – XML Encoding Rules (XER)
|