1
<?xml version="1.0" encoding="UTF-8"?>
3
* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4
* Copyright (C) 2012 - Scilab Enterprises - Calixte DENIZET
6
* This file must be used under the terms of the CeCILL.
7
* This source file is licensed as described in the file COPYING, which
8
* you should have received as part of this distribution. The terms
9
* are also available at
10
* http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
13
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="XMLObjects" xml:lang="ja">
15
<refname>XML Objects</refname>
16
<refpurpose>異なるのXMLオブジェクトのプロパティを記述する</refpurpose>
23
<link linkend="XMLDocument">XML文書</link>
28
<link linkend="XMLElement">XML要素</link>
33
<link linkend="XMLAttributes">XML属性</link>
38
<link linkend="XMLNamespace">XML名前空間</link>
43
<link linkend="XMLNodeList">XMLノードリスト</link>
48
<link linkend="XMLNodeSet">XML XPath結果セット</link>
53
<link linkend="XMLValid">XML検証ファイル</link>
60
<para>ノードおよびそのプロパティをアクセスおよび修正可能です.</para>
62
<refsection id="XMLDocument">
64
<para>XML文書は以下の2つのプロパティを有します: root および url
68
<emphasis role="bold">root</emphasis>: 文書のルート要素で, XML要素です;
73
<emphasis role="bold">url</emphasis>: urlは文字列で,
74
存在する場合は文書のURL,未定義の場合は空文字列となります.
79
<programlisting role="example"><![CDATA[
80
doc = xmlReadStr("<root><a att=""foo"" rib=""bar""><b>Hello</b></a></root>");
81
doc.root = doc.root.children(1);
83
doc.url = TMPDIR+"/foo.xml";
89
<refsection id="XMLElement">
91
<para>XML要素は以下の7つのプロパティを有します:
95
<emphasis role="bold">name</emphasis>: タグ名;
100
<emphasis role="bold">namespace</emphasis>: XML名前空間オブジェクト;
105
<emphasis role="bold">content</emphasis>:
107
例えば,<A>hello <B>world</B> というノードA
108
の内容は文字列 "hello world"となります.
113
<emphasis role="bold">type</emphasis>:
114
ノードの型を表す文字列. 以下の値のどれかとなります:
115
"XML_ELEMENT_NODE", "XML_ATTRIBUTE_NODE", "XML_TEXT_NODE", "XML_CDATA_SECTION_NODE", "XML_ENTITY_REF_NODE", "XML_ENTITY_NODE", "XML_PI_NODE", "XML_COMMENT_NODE", "XML_DOCUMENT_NODE", "XML_DOCUMENT_TYPE_NODE", "XML_DOCUMENT_FRAG_NODE", "XML_NOTATION_NODE", "XML_HTML_DOCUMENT_NODE", "XML_DTD_NODE", "XML_ELEMENT_DECL", "XML_ATTRIBUTE_DECL", "XML_ENTITY_DECL", "XML_NAMESPACE_DECL", "XML_XINCLUDE_START", "XML_XINCLUDE_END", "XML_DOCB_DOCUMENT_NODE".
120
<emphasis role="bold">parent</emphasis>: 親XML要素;
125
<emphasis role="bold">attributes</emphasis>:
126
XML属性オブジェクトとして表したノード属性;
131
<emphasis role="bold">children</emphasis>:
132
XMLノードリストオブジェクトとして表した子要素.
137
<emphasis role="bold">line</emphasis>:
142
<programlisting role="example"><![CDATA[
143
doc = xmlReadStr("<root xmlns:bar=""http://www.scilab.org/""><bar:a att=""foo"" rib=""bar""><b>Hello</b><c> world</c></bar:a></root>");
144
first = doc.root.children(1);
145
b = first.children(1);
147
// "new_attribute"という名前の属性を新規に追加
148
first.attributes.new_attribute = "value";
160
first.children(3) = b
162
// 整数でない添字により挿入を行えます.
163
first.children(1.5) = "<d> Scilab</d>"
165
// firstの子が上の行で定義されています...
173
<refsection id="XMLAttributes">
176
XML属性は,属性の名前を属性の値にマップするハッシュテーブルの一種です.
177
属性の値は,このオブジェクトのフィールドとして属性の名前,または
178
1から属性の大きさまでの添字番号によりアクセスや修正が可能です.
180
<programlisting role="example"><![CDATA[
181
doc = xmlReadStr("<root xmlns:bar=""http://www.scilab.org/""><bar:a att=""foo"" rib=""bar""><b>Hello</b><c> world</c></bar:a></root>");
182
first = doc.root.children(1);
188
first.attributes.att = "";
191
first.attributes.hello = "world";
194
first.attributes(1) = "Bonjour";
201
<refsection id="XMLNamespace">
202
<title>XML名前空間</title>
203
<para>XML名前空間は以下の2つのプロパティを有します: href および prefix
207
<emphasis role="bold">href</emphasis>: 名前空間hrefを表す文字列;
212
<emphasis role="bold">prefix</emphasis>:
213
この名前空間で使用する接頭辞を表す文字列.
218
<programlisting role="example"><![CDATA[
219
doc = xmlReadStr("<root xmlns:bar=""http://www.scilab.org/""><bar:a att=""foo"" rib=""bar""><b>Hello</b><c> world</c></bar:a></root>");
220
ns = doc.root.children(1).namespace;
227
<refsection id="XMLNodeList">
228
<title>XMLノードリスト</title>
230
XMLノードリストはある要素の子に番号を付ける際に使用される
231
型です.各要素は整数の添字によりアクセスできます.
232
これはリストであるため,doubleの添字により,
233
新しい要素をこのリストに挿入することができます.
236
リストの大きさは,'size'フィールドにより取得できます.
239
リストの各ノードの名前または内容は'name'または'content'フィールド
242
<programlisting role="example"><![CDATA[
243
doc = xmlReadStr("<root><a>Hello</a><b> world</b></root>");
244
c = doc.root.children;
253
c(1) = "<c>Hello</c>"
255
// 新しい要素を最初の要素と二番目の要素の間に挿入します
256
c(1.5) = "<d> Scilab</d>" // 1.5 or 1.234...
258
// 新しい要素を末尾またはリストの先頭に挿入します
259
c(0) = "<e>Head </e>"
260
c(217) = "<f> Tail</f>"
273
<refsection id="XMLNodeSet">
274
<title>XML XPath結果セット</title>
276
XMLノードセットは,XPathクエリから返されたオブジェクトです.
277
新しい要素を挿入したり,既存の要素を置換することはできません.
278
できることは整数の添字により要素を取得することのみです.
281
このセットの大きさは'size'フィールドにより取得できます.
283
<programlisting role="example"><![CDATA[
284
doc = xmlReadStr("<root><a><b>Hello</b></a><a>World</a></root>");
285
s = xmlXPath(doc, "//a")
297
<refsection id="XMLValid">
298
<title>XML検証ファイル</title>
299
<para>XML検証ファイルは文書の検証に使用されるオブジェクトです.
300
DTD, Relax NGまたは schemaにより検証できます.
302
<programlisting role="example"><![CDATA[
303
doc = xmlRead("SCI/modules/xml/tests/unit_tests/library.xml");
304
dtd = xmlDTD("SCI/modules/xml/tests/unit_tests/library.dtd");
305
schema = xmlSchema("SCI/modules/xml/tests/unit_tests/library.xsd");
306
rng = xmlRelaxNG("SCI/modules/xml/tests/unit_tests/library.rng");
309
xmlValidate(doc, dtd);
310
xmlValidate(doc, rng);
311
xmlValidate(doc, schema);
316
<refsection role="see also">
318
<simplelist type="inline">
320
<link linkend="xmlRead">xmlRead</link>
323
<link linkend="xmlReadStr">xmlReadStr</link>
326
<link linkend="xmlElement">xmlElement</link>
329
<link linkend="xmlDocument">xmlDocument</link>
332
<link linkend="xmlNs">xmlNs</link>
335
<link linkend="xmlDTD">xmlDTD</link>
338
<link linkend="xmlSchema">xmlSchema</link>
341
<link linkend="xmlRelaxNG">xmlRelaxNG</link>
349
<revnumber>5.4.0</revnumber>
350
<revremark>XMLモジュールが導入されました.</revremark>