Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.
Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.
Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.
Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.
Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.
Byla vydána nová verze 5.4.0 programu na úpravu digitálních fotografií darktable (Wikipedie). Z novinek lze vypíchnout vylepšenou podporu Waylandu. Nejnovější darktable by měl na Waylandu fungovat stejně dobře jako na X11.
Byla vydána beta verze Linux Mintu 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.
GNU Project Debugger aneb GDB byl vydán ve verzi 17.1. Podrobný přehled novinek v souboru NEWS.
Josef Průša oznámil zveřejnění kompletních CAD souborů rámů tiskáren Prusa CORE One a CORE One L. Nejsou vydány pod obecnou veřejnou licenci GNU ani Creative Commons ale pod novou licencí OCL neboli Open Community License. Ta nepovoluje prodávat kompletní tiskárny či remixy založené na těchto zdrojích.
Nový CEO Mozilla Corporation Anthony Enzor-DeMeo tento týden prohlásil, že by se Firefox měl vyvinout v moderní AI prohlížeč. Po bouřlivých diskusích na redditu ujistil, že v nastavení Firefoxu bude existovat volba pro zakázání všech AI funkcí.
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
<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>
<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:
resistorcondensatorothervalue, 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
<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!
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á :-/
Tiskni
Sdílej: