abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
dnes 15:30 | Zajímavý projekt

Společnost Jolla oznámila v příspěvku Case study: Sailfish Watch na svém blogu, že naportovala Sailfish OS na chytré hodinky. Využila a inspirovala se otevřeným operačním systémem pro chytré hodinky AsteroidOS. Použita je knihovna libhybris. Ukázka ovládání hodinek na YouTube.

Ladislav Hagara | Komentářů: 1
dnes 14:15 | Nová verze

Byla vydána verze 7.1.0 skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Jedná se o první stabilní verzi nejnovější větvě 7.1. Přehled novinek v dokumentaci. Podrobnosti v ChangeLogu. K dispozici je také příručka pro přechod z PHP 7.0.x na PHP 7.1.x.

Ladislav Hagara | Komentářů: 0
dnes 12:55 | Nová verze

Google Chrome 55 byl prohlášen za stabilní. Nejnovější stabilní verze 55.0.2883.75 tohoto webového prohlížeče přináší řadu oprav a vylepšení (YouTube). Opraveno bylo také 36 bezpečnostních chyb. Mariusz Mlynski si například vydělal 22 500 dolarů za 3 nahlášené chyby (Universal XSS in Blink).

Ladislav Hagara | Komentářů: 1
dnes 11:55 | Pozvánky

Máte rádi svobodný software a hardware nebo se o nich chcete něco dozvědět? Přijďte na 135. sraz spolku OpenAlt, který se bude konat ve čtvrtek 8. prosince od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Sraz bude tentokrát tématický. Bude retro! K vidění budou přístroje jako Psion 5mx nebo Palm Z22. Ze svobodného hardwaru pak Openmoko nebo čtečka WikiReader. Přijďte se i vy pochlubit svými legendami, nebo alespoň na pivo. Moderní hardware má vstup samozřejmě také povolen.

xkucf03 | Komentářů: 0
dnes 00:10 | Nová verze

Byla vydána verze 3.2 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata. Z novinek lze zmínit například podporu protokolů DNP3 a CIP/ENIP, vylepšenou podporu TLS a samozřejmě také aktualizovanou dokumentaci.

Ladislav Hagara | Komentářů: 0
včera 21:00 | Nová verze

Byla vydána beta verze Linux Mintu 18.1 s kódovým jménem Serena. Na blogu Linux Mintu jsou hned dvě oznámení. První o vydání Linux Mintu s prostředím MATE a druhé o vydání Linux Mintu s prostředím Cinnamon. Stejným způsobem jsou rozděleny také poznámky k vydání (MATE, Cinnamon) a přehled novinek s náhledy (MATE, Cinnamon). Linux Mint 18.1 bude podporován až do roku 2021.

Ladislav Hagara | Komentářů: 0
včera 16:42 | Nová verze

Byl vydán Devuan Jessie 1.0 Beta 2. Jedná se o druhou beta verzi forku Debianu bez systemd představeného v listopadu 2014 (zprávička). První beta verze byla vydána v dubnu letošního roku (zprávička). Jedna z posledních přednášek věnovaných Devuanu proběhla v listopadu na konferenci FSCONS 2016 (YouTube, pdf).

Ladislav Hagara | Komentářů: 0
včera 15:16 | Komunita

Na GOG.com začal zimní výprodej. Řada zlevněných her běží oficiálně také na Linuxu. Hru Neverwinter Nights Diamond lze dva dny získat zdarma. Hra dle stránek GOG.com na Linuxu neběží. Pomocí návodu ji lze ale rozběhnout také na Linuxu [Gaming On Linux].

Ladislav Hagara | Komentářů: 1
včera 13:14 | Bezpečnostní upozornění

Byla vydána verze 2.7.1 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Řešeno je několik bezpečnostních problémů. Aktualizován byl především Tor Browser na verzi 6.0.7. Tor Browser je postaven na Firefoxu ESR (Extended Support Release) a právě ve Firefoxu byla nalezena a opravena vážná bezpečnostní chyba MFSA 2016-92 (CVE-2016-9079, Firefox SVG Animation

… více »
Ladislav Hagara | Komentářů: 0
30.11. 19:19 | Nová verze

Příspěvek na blogu nadace Raspberry Pi je věnován bezpečnostním vylepšením v nejnovější verzi Raspbianu s desktopovým prostředím PIXEL. V oficiálních obrazech je nově zakázán SSH přístup. Ten lze samozřejmě povolit po zavedení Raspbianu pomocí nástroje raspi-config. Nemá-li uživatel k Raspberry Pi připojený terminál, může SSH přístup povolit vytvořením souboru ssh v adresáři /boot. Raspbian nově upozorňuje uživatele na bezpečnostní riziko, je-li SSH přístup povolen a uživatel pi nemá změněno výchozí heslo.

Ladislav Hagara | Komentářů: 41
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 755 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: XML scheme

16.10.2008 15:20 Tomáš Skočdopole | skóre: 13
XML scheme
Přečteno: 502×
Ahoj, chtel bych se zeptat, zda je korektni v navrhu XML struktury pouzit stejny nazev elementu, který bude mit jiné vlastnosti v zavislosti na to, kde se nachazi.
Priklad:
<resistor>
…
	<value unit-prefix="k">10</value>
…
<resistor>

<condensator>
	…
	<value unit-prefix="u">10</value>
	…
</condensator>
Zde konkretne element <value>, jednou muze jeho atribut unit-prefix nabyvat hodnot: m|R|k|M. Kdezto když je to u kondenzatoru, tak muze tento atribut nabyvat hodnot: m|u|n|p.

Ted tvorim schema dle XML Schema (http://www.w3.org/2001/XMLSchema) a nevim jak mam definovat element value tak aby se rozlišilo, kde se element nachazi.

Dekuji predem za pomoc!

Tomas

Odpovědi

default avatar 16.10.2008 15:46 default | skóre: 22 | Madrid
Rozbalit Rozbalit vše Re: XML scheme
Jen z hlavy. Budeš to muset doladit:
<xsd:complexType name="rootType">
    <xsd:sequence>
        <xsd:element name="resistor" type="resistorType" />
        <xsd:element name="condensator" type="condensatorType" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="resistorType">
    <xsd:sequence>
        <xsd:element name="value" type="valueType" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="condensatorType">
    <xsd:sequence>
        <xsd:element name="value" type="valueType" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="valueType">
    <xsd:simpleContent>
        <xsd:extension base="xsd:integer" use="required">
            <xsd:attribute name="unit-prefix" type="unitsType" use="required" />
        </xsd:extendsion>
    </xsd:simpleContent>
</xsd:complexType>

<xsd:simpleType="unitsType">
    <xsd:restriction base="xsd:string">
        <xsd:enumeration value="k" />
        <xsd:enumeration value="M" />
        <xsd:enumeration value="G" />
        <xsd:enumeration value="T" />
        <xsd:enumeration value="P" />
        <xsd:enumeration value="E" />
        <xsd:enumeration value="Y" />

        <xsd:enumeration value="m" />
        <xsd:enumeration value="u" />
        <xsd:enumeration value="n" />
        <xsd:enumeration value="p" />
        <xsd:enumeration value="f" />
        <xsd:enumeration value="a" />
        <xsd:enumeration value="y" />

        <xsd:enumeration value="d" />
        <xsd:enumeration value="dk" />
        <xsd:enumeration value="h" />
    </xsd:restriction>
</xsd:simpleType>
17.10.2008 10:25 Tomáš Skočdopole | skóre: 13
Rozbalit Rozbalit vše Re: XML scheme
Diky za reakci,

no, mozna jsem nesikovne napsal ten ukazkovy (umele vytvoreny) priklad, ale potreboval bych neco jineho. Potreboval bych definovat element <value> vice zpusoby - aby zalezelo, ve ktere pozici se v XML hierarchii nachazi. To znamena aby treba jednou mel element <value> pouze ciselnou hodnotu a bez atributu, podruhe, kdyz se treba nachazi uvnitr <rezistor> tak aby mel atribut unit-prefix a ten atribut aby mohl nabyvat hodnot m R k M. Dale pokud bude treba uvnitr jineho elementu, tak aby mohl mit i podrazene elementy a tak dale.

Omlouvam se za nepresny popis v prvnim prispevku. Snad uz to bude jasnejsi.

Dekuji Tomas
default avatar 17.10.2008 14:28 default | skóre: 22 | Madrid
Rozbalit Rozbalit vše Re: XML scheme
Přílohy:
Tak se na to jukni. XML má tuto strukturu:
<ns:root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns:ns="http://hadrabap.googlepages.com/projects/xmlutilities/example.xsd"
         xsi:schemaLocation="http://hadrabap.googlepages.com/projects/xmlutilities/example.xsd file:/Users/petr/NetBeansProjects/xmlutilities/test/global/sandbox/xmlutilities/example.xsd">
    
    <ns:resistor>
        <ns:value unit-prefix="k">12</ns:value>
    </ns:resistor>
    
    <ns:condensator>
        <ns:value>
            12
        </ns:value>
    </ns:condensator>
    
    <ns:other>
        <ns:value unit-prefix="xm">14</ns:value>
    </ns:other>
    
    <ns:resistor>
        <ns:value unit-prefix="M">13</ns:value>
    </ns:resistor>
    
</ns:root>
Kořenem je element root. V něm můžou být tyto elementy:
  • resistor
  • condensator
  • other
Všechny tyto elementy v sobě mají element value, který může obsahovat jen číselnou hodnotu (desetinné číslo). Element value v elementu resistor žere navíc atribut unit-prefix, který může nabývat hodnot m, R, k a M. Element value v elementu condensator nemá žádný atribut. Element value v elementu other má též atribut unit-prefix, ale s hodnotami xm, xR, xk a xM.

Schéma vypadá takto:
<?xml version="1.0" encoding="UTF-8"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns="http://hadrabap.googlepages.com/projects/xmlutilities/example.xsd"
            targetNamespace="http://hadrabap.googlepages.com/projects/xmlutilities/example.xsd"
            elementFormDefault="qualified"
            attributeFormDefault="unqualified">
    
    <xsd:element name="root" type="rootType" />
    
    <xsd:complexType name="rootType">
        <xsd:sequence minOccurs="0" maxOccurs="unbounded">
            <xsd:choice>
                <xsd:element name="resistor" type="resistorType" />
                <xsd:element name="condensator" type="condensatorType" />
                <xsd:element name="other" type="otherType" />
            </xsd:choice>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="resistorType">
        <xsd:sequence>
            <xsd:element name="value">
                <xsd:complexType>
                    <xsd:simpleContent>
                        <xsd:extension base="xsd:decimal">
                            <xsd:attribute name="unit-prefix" type="unitsType" />
                        </xsd:extension>
                    </xsd:simpleContent>
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="condensatorType">
        <xsd:sequence>
            <xsd:element name="value">
                <xsd:complexType>
                    <xsd:simpleContent>
                        <xsd:extension base="xsd:decimal" />
                    </xsd:simpleContent>
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="otherType">
        <xsd:sequence>
            <xsd:element name="value">
                <xsd:complexType>
                    <xsd:simpleContent>
                        <xsd:extension base="xsd:decimal">
                            <xsd:attribute name="unit-prefix" type="units2Type" />
                        </xsd:extension>
                    </xsd:simpleContent>
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:simpleType name="unitsType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="m" />
            <xsd:enumeration value="R" />
            <xsd:enumeration value="k" />
            <xsd:enumeration value="M" />
        </xsd:restriction>
    </xsd:simpleType>
    
    <xsd:simpleType name="units2Type">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="xm" />
            <xsd:enumeration value="xR" />
            <xsd:enumeration value="xk" />
            <xsd:enumeration value="xM" />
        </xsd:restriction>
    </xsd:simpleType>
    
</xsd:schema>
Když si stáhneš XMLUtilities a do adresáře xmlutilities/test/global/sandbox/xmlutilities/ nahraješ soubory z přílohy, získáš další TestCase, pomocí kterého si můžeš hrát s tím schémátkem. Je to projekt NetBeans 6.1 a všechny knihovny jsou součástí distribuce knihovny. Vyžaduje to JavaSE 5 a vyšší.

Tak snad jsem trošku pomohl. Dej vědět, co dál ;-)
29.10.2008 16:27 Tomáš Skočdopole | skóre: 13
Rozbalit Rozbalit vše Re: XML scheme
Ahoj,

ano to je presne ono jak jsem to potreboval. Dekuji mnohokrat!

Jinak mohl bych se zeptat, jak v teto sekci:
<location>
     <coordinate name="x">20</coordinate>
     <coordinate name="y">50</coordinate>
</location>
nadefinovat to, aby se prvek coordinate mohl vyskytnout vicenasobne ale abynevznikla duplicitni definice u hodnoty atributu name. Cili nejak takto ne:
<location>
     <coordinate name="x">20</coordinate>
     <coordinate name="x">50</coordinate>
     <coordinate name="y">50</coordinate>
</location>
Dekuji Vam!
default avatar 29.10.2008 19:54 default | skóre: 22 | Madrid
Rozbalit Rozbalit vše Re: XML scheme
No, tady je to již trošku horší. Bohužel dva stejně pojmenované elementy s různými typy nelze v XML Schema nadefinovat. Buď bych to ošetřil v parseru (tam je to docela jednoduché, protože předtím, než nasmažíš do svých struktur hodnotu pro např. coordinate-x, tak se podíváš, jestli je nadefinovaná a když jo, tak vyhučíš), nebo změnil strukturu XML (například mít dva elementy <coordinate-x /> a <coordinate-y /> bez toho atributu)…

Bohužel, i XML Schema má své limity a tohle není jediná. Například nejde udělat, že když má atribut někde v nějakym elementu nahoře tuhle hodnotu, tak někde dole musí být hodnota jiná :-/
17.10.2008 10:59 FooBar
Rozbalit Rozbalit vše Re: XML scheme
Ano, je to kosher, ale pozor -- DTD tohle neumi, jsi omezenej pak prave na XSD, RelaxNG apod.

Jen bych se zeptal, proc omezovat u kondensatoru jen na male hodnoty a u odporu jen na velke hodnoty -- neprijde mi to jako rozumny pristup k validaci dat... kdyz nekdo bude chtit zadat pidiodpor nebo megakondensator, tak ma peska i kdyby to treba davalo v realnym svete smysl... osobne bych proste omezil "unit-prefix" na zname prefixy jednotek a tim to haslo.
17.10.2008 11:23 Tomáš Skočdopole | skóre: 13
Rozbalit Rozbalit vše Re: XML scheme
Aha, to jsem nevedel ze DTD toto neumi... Nastesti jsem hned od zacatku sahl po XML Scheme :) Ale nevim jak tam toto zadefinovat :(

Jinak jak jsem psal vyse, tento priklad jsem vytvoril umele. Ve zkutecnosti to mam k necemu uplne jinemu.

Tomas
17.10.2008 22:24 FooBar
Rozbalit Rozbalit vše Re: XML scheme
V tom pripade by mozna bylo pro lepsi odpovedi dat lepsi ukazkovy vzorek dat:)
29.10.2008 21:25 cronin | skóre: 48
Rozbalit Rozbalit vše Re: XML scheme
Bez ohladu na to, ci to mozne je alebo nie je, moja rada je, aby si sa tomu vyhol. Usetris problemy sebe a zmatok pre buducich pouzivatelov. A ako bolo naznacene neschopnostou DTD osetrit tuto situaciu, patrne sa vyhnes aj niektorym technickym problemom. Napr. vo vyssie uvedenom pripade je vhodne value nahradit raz pomocou "resistance", raz pomocou "capacity", alebo pod. I ked, vyssie uvedeny priklad je umelo vykonstruovany, ze ano.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.