• R/O
  • HTTP
  • SSH
  • HTTPS

TogaGem: Commit

TogaGemは、3D動画制作ツール、MikuMikuDance(MMD)で用いられる各種データファイルを読み書きするためのJavaライブラリです。
旧TogaParserライブラリの資産は、TogaGemライブラリに吸収されました。


Commit MetaInfo

Revision26a7de90cc885bfa50bfb53523be1d31cf2f1440 (tree)
Zeit2013-03-17 01:20:21
AutorOlyutorskii <olyutorskii@user...>
CommiterOlyutorskii

Log Message

2.102.2版リリース準備

Ändern Zusammenfassung

Diff

--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -4,7 +4,7 @@
44 TogaGem 変更履歴
55
66
7-X.XXX.X (20XX-XX-XX)
7+2.102.2 (2013-03-17)
88 ・Maven3対応。
99 ・JRE版数によって"0.001"や"0.0010"になるXML上の実数表記揺れを吸収。
1010
--- a/pom.xml
+++ b/pom.xml
@@ -16,7 +16,7 @@
1616 <groupId>jp.sourceforge.mikutoga</groupId>
1717 <artifactId>togagem</artifactId>
1818
19- <version>2.101.3-SNAPSHOT</version>
19+ <version>2.102.2</version>
2020
2121 <packaging>jar</packaging>
2222 <name>TogaGem</name>
@@ -121,11 +121,11 @@
121121 <plugin>
122122 <groupId>org.apache.maven.plugins</groupId>
123123 <artifactId>maven-enforcer-plugin</artifactId>
124- <version>1.1.1</version>
124+ <version>1.2</version>
125125 <configuration>
126126 <rules>
127127 <requireMavenVersion>
128- <version>[2.2,)</version>
128+ <version>[3.0,)</version>
129129 </requireMavenVersion>
130130 <requireJavaVersion>
131131 <version>[1.6,)</version>
@@ -233,7 +233,7 @@
233233 <plugin>
234234 <groupId>org.apache.maven.plugins</groupId>
235235 <artifactId>maven-surefire-plugin</artifactId>
236- <version>2.12.4</version>
236+ <version>2.13</version>
237237 <configuration>
238238 <skipTests>false</skipTests>
239239 <enableAssertions>true</enableAssertions>
@@ -262,7 +262,7 @@
262262 <plugin>
263263 <groupId>org.apache.maven.plugins</groupId>
264264 <artifactId>maven-pmd-plugin</artifactId>
265- <version>2.7.1</version>
265+ <version>2.7.1</version> <!-- 3.0 is buggy -->
266266 <configuration>
267267 <targetJdk>${maven.compiler.target}</targetJdk>
268268 <rulesets>
@@ -416,7 +416,7 @@
416416 <plugin>
417417 <groupId>org.apache.maven.plugins</groupId>
418418 <artifactId>maven-surefire-report-plugin</artifactId>
419- <version>2.12.4</version>
419+ <version>2.13</version>
420420 <configuration>
421421 <showSuccess>false</showSuccess>
422422 </configuration>
@@ -462,7 +462,7 @@
462462 <plugin>
463463 <groupId>org.apache.maven.plugins</groupId>
464464 <artifactId>maven-pmd-plugin</artifactId>
465- <version>2.7.1</version>
465+ <version>2.7.1</version> <!-- 3.0 is buggy -->
466466 <configuration>
467467 <skip>false</skip>
468468 <targetJdk>${maven.compiler.target}</targetJdk>
--- a/src/main/java/jp/sourceforge/mikutoga/pmd/ModelFileType.java
+++ /dev/null
@@ -1,30 +0,0 @@
1-/*
2- * MMD model file types.
3- *
4- * License : The MIT License
5- * Copyright(c) 2012 MikuToga Partners
6- */
7-
8-package jp.sourceforge.mikutoga.pmd;
9-
10-/**
11- * モデルファイル種別。
12- */
13-public enum ModelFileType {
14-
15- /** 不明。 */
16- NONE,
17-
18- /** MikuMikuDance ver7 前後で読み書きが可能なPMDファイル。 */
19- PMD,
20-
21- /**
22- * スキーマ
23- * http://mikutoga.sourceforge.jp/xml/xsd/pmdxml-101009.xsd
24- * で定義されたXMLファイル。
25- */
26- XML_101009,
27-
28- ;
29-
30-}
--- a/src/main/java/jp/sourceforge/mikutoga/pmd/parser/PmdParserBase.java
+++ b/src/main/java/jp/sourceforge/mikutoga/pmd/parser/PmdParserBase.java
@@ -446,10 +446,10 @@ public class PmdParserBase extends CommonParser {
446446 int parentId = parseLeUShortAsInt();
447447 int tailId = parseLeUShortAsInt();
448448 byte boneKind = parseByte();
449- int ikId = parseLeUShortAsInt();
449+ int srcId = parseLeUShortAsInt();
450450
451451 this.boneHandler.pmdBoneInfo(boneName, boneKind);
452- this.boneHandler.pmdBoneLink(parentId, tailId, ikId);
452+ this.boneHandler.pmdBoneLink(parentId, tailId, srcId);
453453
454454 float xPos = parseLeFloat();
455455 float yPos = parseLeFloat();
--- a/src/main/java/jp/sourceforge/mikutoga/typical/I18nAlias.java
+++ b/src/main/java/jp/sourceforge/mikutoga/typical/I18nAlias.java
@@ -114,8 +114,8 @@ class I18nAlias {
114114 * <li>「ボーン」は「ボーン」になる
115115 * <li>「ホ゛ーン9」は「ボーン9」になる
116116 * </ul>
117- * @param name
118- * @return
117+ * @param name 正規化対象文字列
118+ * @return 正規化済み文字列
119119 */
120120 protected static String normalize(CharSequence name){
121121 String result;
@@ -126,7 +126,7 @@ class I18nAlias {
126126
127127 /**
128128 * オーダー番号を返す。
129- * @return
129+ * @return オーダー番号
130130 */
131131 protected int getOrderNo(){
132132 return this.orderNo;
@@ -134,7 +134,7 @@ class I18nAlias {
134134
135135 /**
136136 * オーダー番号を設定する。
137- * @param orderNo
137+ * @param orderNo オーダー番号
138138 */
139139 protected void setOrderNo(int orderNo){
140140 this.orderNo = orderNo;
--- a/src/main/java/jp/sourceforge/mikutoga/xml/DomNsUtils.java
+++ b/src/main/java/jp/sourceforge/mikutoga/xml/DomNsUtils.java
@@ -47,18 +47,18 @@ public final class DomNsUtils {
4747 * @return ノードの名前空間およびローカル名が一致したらtrue
4848 */
4949 public static boolean hasNsLocalNameNode(Node node,
50- String nsuri,
51- String localName ){
50+ String nsuri,
51+ String localName ){
5252 String nodeLocalName = node.getLocalName();
5353 String nodeNsUri = node.getNamespaceURI();
5454
55- boolean needLocalCmp =
56- localName != null;
57- boolean needUriCmp =
58- nsuri != null && nodeNsUri != null;
55+ if(localName != null){
56+ if( ! localName.equals(nodeLocalName) ) return false;
57+ }
5958
60- if(needLocalCmp && ! localName.equals(nodeLocalName) ) return false;
61- if(needUriCmp && ! nsuri.equals(nodeNsUri)) return false;
59+ if(nsuri != null && nodeNsUri != null){
60+ if( ! nsuri.equals(nodeNsUri) ) return false;
61+ }
6262
6363 return true;
6464 }
@@ -79,6 +79,28 @@ public final class DomNsUtils {
7979 }
8080
8181 /**
82+ * 親要素が指定された名前の子要素を持つか判定する。
83+ * @param parent 親要素
84+ * @param nsuri 名前空間URI
85+ * @param localName ローカル名
86+ * @return 指定名の子要素が存在すればtrue
87+ */
88+ public static boolean hasChild(Element parent,
89+ String nsuri,
90+ String localName ){
91+ for(Node node = parent.getFirstChild();
92+ node != null;
93+ node = node.getNextSibling() ){
94+
95+ if(hasNsLocalNameElem(node, nsuri, localName)){
96+ return true;
97+ }
98+ }
99+
100+ return false;
101+ }
102+
103+ /**
82104 * 指定された名前空間とローカル名に合致する最初の直下子要素を返す。
83105 * @param parent 親要素
84106 * @param nsuri 名前空間URI
--- a/src/main/java/jp/sourceforge/mikutoga/xml/DomUtils.java
+++ b/src/main/java/jp/sourceforge/mikutoga/xml/DomUtils.java
@@ -151,7 +151,7 @@ public final class DomUtils {
151151 throw new TogaXmlException(message, e);
152152 }
153153
154- result.replace("" + '\u00a5', "" + BS_CHAR);
154+ result = result.replace("" + '\u00a5', "" + BS_CHAR);
155155
156156 return result;
157157 }
--- a/src/main/java/jp/sourceforge/mikutoga/xml/XmlResourceResolver.java
+++ b/src/main/java/jp/sourceforge/mikutoga/xml/XmlResourceResolver.java
@@ -39,7 +39,7 @@ public class XmlResourceResolver
3939 "http://www.w3.org/2001/XMLSchema-instance";
4040
4141 private static final String LOCAL_SCHEMA_XML =
42- "resources/xml-2009-01.xsd";
42+ "resources/xmlspace.xsd";
4343
4444 private static final URI EMPTY_URI = URI.create("");
4545
@@ -68,7 +68,7 @@ public class XmlResourceResolver
6868 URI originalURI = URI.create(SCHEMA_XML);
6969 URI redirectURI = URI.create(redirectResName);
7070
71- putURIMapImpl(originalURI, redirectURI);
71+ putRedirectedImpl(originalURI, redirectURI);
7272
7373 return;
7474 }
@@ -135,7 +135,7 @@ public class XmlResourceResolver
135135 * @param original オリジナルURI
136136 * @param redirect リダイレクトURI
137137 */
138- private void putURIMapImpl(URI original, URI redirect){
138+ private void putRedirectedImpl(URI original, URI redirect){
139139 URI oridinalNorm = original.normalize();
140140 URI redirectNorm = redirect.normalize();
141141
@@ -150,12 +150,43 @@ public class XmlResourceResolver
150150 * @param original オリジナルURI
151151 * @param redirect リダイレクトURI
152152 */
153- public void putURIMap(URI original, URI redirect){
154- putURIMapImpl(original, redirect);
153+ public void putRedirected(URI original, URI redirect){
154+ putRedirectedImpl(original, redirect);
155155 return;
156156 }
157157
158158 /**
159+ * 別リゾルバの登録内容を追加登録する。
160+ * @param other 別リゾルバ
161+ */
162+ public void putRedirected(XmlResourceResolver other){
163+ this.uriMap.putAll(other.uriMap);
164+ return;
165+ }
166+
167+ /**
168+ * 登録済みリダイレクト先URIを返す。
169+ * @param original オリジナルURI
170+ * @return リダイレクト先URI。未登録の場合はnull
171+ */
172+ public URI getRedirected(URI original){
173+ URI keyURI = original.normalize();
174+ URI resourceURI = this.uriMap.get(keyURI);
175+ return resourceURI;
176+ }
177+
178+ /**
179+ * 登録済みリダイレクト先URIを返す。
180+ * @param original オリジナルURI
181+ * @return リダイレクト先URI。未登録の場合はオリジナルを返す
182+ */
183+ public URI resolveRedirected(URI original){
184+ URI result = getRedirected(original);
185+ if(result == null) result = original;
186+ return result;
187+ }
188+
189+ /**
159190 * 登録済みリダイレクト先リソースの入力ストリームを得る。
160191 * @param originalURI オリジナルURI
161192 * @return 入力ストリーム。リダイレクト先が未登録の場合はnull
@@ -164,11 +195,8 @@ public class XmlResourceResolver
164195 */
165196 private InputStream getXMLResourceAsStream(URI originalURI)
166197 throws IOException{
167- URI keyURI = originalURI.normalize();
168- URI resourceURI = this.uriMap.get(keyURI);
169- if(resourceURI == null){
170- return null;
171- }
198+ URI resourceURI = getRedirected(originalURI);
199+ if(resourceURI == null) return null;
172200
173201 URL resourceURL = resourceURI.toURL();
174202 InputStream is = resourceURL.openStream();
--- a/src/main/resources/jp/sourceforge/mikutoga/xml/resources/xml-2009-01.xsd
+++ /dev/null
@@ -1,286 +0,0 @@
1-<?xml version='1.0'?>
2-<?xml-stylesheet href="../2008/09/xsd.xsl" type="text/xsl"?>
3-<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace"
4- xmlns:xs="http://www.w3.org/2001/XMLSchema"
5- xmlns ="http://www.w3.org/1999/xhtml"
6- xml:lang="en">
7-
8- <xs:annotation>
9- <xs:documentation>
10- <div>
11- <h1>About the XML namespace</h1>
12-
13- <div class="bodytext">
14- <p>
15- This schema document describes the XML namespace, in a form
16- suitable for import by other schema documents.
17- </p>
18- <p>
19- See <a href="http://www.w3.org/XML/1998/namespace.html">
20- http://www.w3.org/XML/1998/namespace.html</a> and
21- <a href="http://www.w3.org/TR/REC-xml">
22- http://www.w3.org/TR/REC-xml</a> for information
23- about this namespace.
24- </p>
25- <p>
26- Note that local names in this namespace are intended to be
27- defined only by the World Wide Web Consortium or its subgroups.
28- The names currently defined in this namespace are listed below.
29- They should not be used with conflicting semantics by any Working
30- Group, specification, or document instance.
31- </p>
32- <p>
33- See further below in this document for more information about <a
34- href="#usage">how to refer to this schema document from your own
35- XSD schema documents</a> and about <a href="#nsversioning">the
36- namespace-versioning policy governing this schema document</a>.
37- </p>
38- </div>
39- </div>
40- </xs:documentation>
41- </xs:annotation>
42-
43- <xs:attribute name="lang">
44- <xs:annotation>
45- <xs:documentation>
46- <div>
47-
48- <h3>lang (as an attribute name)</h3>
49- <p>
50- denotes an attribute whose value
51- is a language code for the natural language of the content of
52- any element; its value is inherited. This name is reserved
53- by virtue of its definition in the XML specification.</p>
54-
55- </div>
56- <div>
57- <h4>Notes</h4>
58- <p>
59- Attempting to install the relevant ISO 2- and 3-letter
60- codes as the enumerated possible values is probably never
61- going to be a realistic possibility.
62- </p>
63- <p>
64- See BCP 47 at <a href="http://www.rfc-editor.org/rfc/bcp/bcp47.txt">
65- http://www.rfc-editor.org/rfc/bcp/bcp47.txt</a>
66- and the IANA language subtag registry at
67- <a href="http://www.iana.org/assignments/language-subtag-registry">
68- http://www.iana.org/assignments/language-subtag-registry</a>
69- for further information.
70- </p>
71- <p>
72- The union allows for the 'un-declaration' of xml:lang with
73- the empty string.
74- </p>
75- </div>
76- </xs:documentation>
77- </xs:annotation>
78- <xs:simpleType>
79- <xs:union memberTypes="xs:language">
80- <xs:simpleType>
81- <xs:restriction base="xs:string">
82- <xs:enumeration value=""/>
83- </xs:restriction>
84- </xs:simpleType>
85- </xs:union>
86- </xs:simpleType>
87- </xs:attribute>
88-
89- <xs:attribute name="space">
90- <xs:annotation>
91- <xs:documentation>
92- <div>
93-
94- <h3>space (as an attribute name)</h3>
95- <p>
96- denotes an attribute whose
97- value is a keyword indicating what whitespace processing
98- discipline is intended for the content of the element; its
99- value is inherited. This name is reserved by virtue of its
100- definition in the XML specification.</p>
101-
102- </div>
103- </xs:documentation>
104- </xs:annotation>
105- <xs:simpleType>
106- <xs:restriction base="xs:NCName">
107- <xs:enumeration value="default"/>
108- <xs:enumeration value="preserve"/>
109- </xs:restriction>
110- </xs:simpleType>
111- </xs:attribute>
112-
113- <xs:attribute name="base" type="xs:anyURI"> <xs:annotation>
114- <xs:documentation>
115- <div>
116-
117- <h3>base (as an attribute name)</h3>
118- <p>
119- denotes an attribute whose value
120- provides a URI to be used as the base for interpreting any
121- relative URIs in the scope of the element on which it
122- appears; its value is inherited. This name is reserved
123- by virtue of its definition in the XML Base specification.</p>
124-
125- <p>
126- See <a
127- href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/</a>
128- for information about this attribute.
129- </p>
130- </div>
131- </xs:documentation>
132- </xs:annotation>
133- </xs:attribute>
134-
135- <xs:attribute name="id" type="xs:ID">
136- <xs:annotation>
137- <xs:documentation>
138- <div>
139-
140- <h3>id (as an attribute name)</h3>
141- <p>
142- denotes an attribute whose value
143- should be interpreted as if declared to be of type ID.
144- This name is reserved by virtue of its definition in the
145- xml:id specification.</p>
146-
147- <p>
148- See <a
149- href="http://www.w3.org/TR/xml-id/">http://www.w3.org/TR/xml-id/</a>
150- for information about this attribute.
151- </p>
152- </div>
153- </xs:documentation>
154- </xs:annotation>
155- </xs:attribute>
156-
157- <xs:attributeGroup name="specialAttrs">
158- <xs:attribute ref="xml:base"/>
159- <xs:attribute ref="xml:lang"/>
160- <xs:attribute ref="xml:space"/>
161- <xs:attribute ref="xml:id"/>
162- </xs:attributeGroup>
163-
164- <xs:annotation>
165- <xs:documentation>
166- <div>
167-
168- <h3>Father (in any context at all)</h3>
169-
170- <div class="bodytext">
171- <p>
172- denotes Jon Bosak, the chair of
173- the original XML Working Group. This name is reserved by
174- the following decision of the W3C XML Plenary and
175- XML Coordination groups:
176- </p>
177- <blockquote>
178- <p>
179- In appreciation for his vision, leadership and
180- dedication the W3C XML Plenary on this 10th day of
181- February, 2000, reserves for Jon Bosak in perpetuity
182- the XML name "xml:Father".
183- </p>
184- </blockquote>
185- </div>
186- </div>
187- </xs:documentation>
188- </xs:annotation>
189-
190- <xs:annotation>
191- <xs:documentation>
192- <div xml:id="usage" id="usage">
193- <h2><a name="usage">About this schema document</a></h2>
194-
195- <div class="bodytext">
196- <p>
197- This schema defines attributes and an attribute group suitable
198- for use by schemas wishing to allow <code>xml:base</code>,
199- <code>xml:lang</code>, <code>xml:space</code> or
200- <code>xml:id</code> attributes on elements they define.
201- </p>
202- <p>
203- To enable this, such a schema must import this schema for
204- the XML namespace, e.g. as follows:
205- </p>
206- <pre>
207- &lt;schema . . .>
208- . . .
209- &lt;import namespace="http://www.w3.org/XML/1998/namespace"
210- schemaLocation="http://www.w3.org/2001/xml.xsd"/>
211- </pre>
212- <p>
213- or
214- </p>
215- <pre>
216- &lt;import namespace="http://www.w3.org/XML/1998/namespace"
217- schemaLocation="http://www.w3.org/2009/01/xml.xsd"/>
218- </pre>
219- <p>
220- Subsequently, qualified reference to any of the attributes or the
221- group defined below will have the desired effect, e.g.
222- </p>
223- <pre>
224- &lt;type . . .>
225- . . .
226- &lt;attributeGroup ref="xml:specialAttrs"/>
227- </pre>
228- <p>
229- will define a type which will schema-validate an instance element
230- with any of those attributes.
231- </p>
232- </div>
233- </div>
234- </xs:documentation>
235- </xs:annotation>
236-
237- <xs:annotation>
238- <xs:documentation>
239- <div id="nsversioning" xml:id="nsversioning">
240- <h2><a name="nsversioning">Versioning policy for this schema document</a></h2>
241- <div class="bodytext">
242- <p>
243- In keeping with the XML Schema WG's standard versioning
244- policy, this schema document will persist at
245- <a href="http://www.w3.org/2009/01/xml.xsd">
246- http://www.w3.org/2009/01/xml.xsd</a>.
247- </p>
248- <p>
249- At the date of issue it can also be found at
250- <a href="http://www.w3.org/2001/xml.xsd">
251- http://www.w3.org/2001/xml.xsd</a>.
252- </p>
253- <p>
254- The schema document at that URI may however change in the future,
255- in order to remain compatible with the latest version of XML
256- Schema itself, or with the XML namespace itself. In other words,
257- if the XML Schema or XML namespaces change, the version of this
258- document at <a href="http://www.w3.org/2001/xml.xsd">
259- http://www.w3.org/2001/xml.xsd
260- </a>
261- will change accordingly; the version at
262- <a href="http://www.w3.org/2009/01/xml.xsd">
263- http://www.w3.org/2009/01/xml.xsd
264- </a>
265- will not change.
266- </p>
267- <p>
268- Previous dated (and unchanging) versions of this schema
269- document are at:
270- </p>
271- <ul>
272- <li><a href="http://www.w3.org/2009/01/xml.xsd">
273- http://www.w3.org/2009/01/xml.xsd</a></li>
274- <li><a href="http://www.w3.org/2007/08/xml.xsd">
275- http://www.w3.org/2007/08/xml.xsd</a></li>
276- <li><a href="http://www.w3.org/2004/10/xml.xsd">
277- http://www.w3.org/2004/10/xml.xsd</a></li>
278- <li><a href="http://www.w3.org/2001/03/xml.xsd">
279- http://www.w3.org/2001/03/xml.xsd</a></li>
280- </ul>
281- </div>
282- </div>
283- </xs:documentation>
284- </xs:annotation>
285-
286-</xs:schema>
--- /dev/null
+++ b/src/main/resources/jp/sourceforge/mikutoga/xml/resources/xmlspace.xsd
@@ -0,0 +1,37 @@
1+<?xml version="1.0" encoding="UTF-8" ?>
2+
3+<xsd:schema
4+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
5+ targetNamespace="http://www.w3.org/XML/1998/namespace"
6+>
7+
8+ <xsd:annotation>
9+ <xsd:documentation>
10+ Only for using "xml:space" in XML schema definition.
11+ See
12+ http://www.w3.org/2001/xml.xsd
13+ http://www.w3.org/2009/01/xml.xsd
14+ </xsd:documentation>
15+ </xsd:annotation>
16+
17+ <xsd:attribute name="space">
18+
19+ <xsd:annotation>
20+ <xsd:documentation>
21+ about xml:space attribute
22+ </xsd:documentation>
23+ </xsd:annotation>
24+
25+ <xsd:simpleType>
26+ <xsd:restriction base="xsd:NCName">
27+ <xsd:enumeration value="default"/>
28+ <xsd:enumeration value="preserve"/>
29+ </xsd:restriction>
30+ </xsd:simpleType>
31+
32+ </xsd:attribute>
33+
34+</xsd:schema>
35+
36+
37+<!-- EOF -->
Show on old repository browser