問題タブ [schematron]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
7497 参照

java - XMLドキュメントを検証すると、「1バイトのUTF-8シーケンスのバイト1が無効になります」という結果になります。

内部でSaxonを使用するProbatron4jを使用して、 Schematronスタイルシートに対していくつかのXMLファイルを検証しています。ほとんどの場合、これは正常に機能しますが、エラーが発生して処理がクラッシュする場合があります

org.xml.sax.SAXParseException:1バイトのUTF-8シーケンスの無効なバイト1。

私の調査によると、このメッセージは通常(順不同)を示しています

  • 明らかに無効なデータ(たとえば、ZIPファイルをXMLファイルであるかのように読み取ろうとする)。
  • バイト順マークの存在;
  • UTF-8で無効な文字の存在。また
  • UTF-8でエンコードされていると主張するときに嘘をついているドキュメント。

これらはどれも、私が処理しているドキュメントには当てはまりません。プログラムの実行中にバイト配列形式の入力を検査しましたが、BOMまたは非ASCII文字が含まれていません。

処理は、私の30kbドキュメントの約5分の1で、目立たない英語の文(「目立たない」とは、すべてのバイトが32(スペース)から122(小文字のz)の間であることを意味します)、つまり標準のキーボード文字でクラッシュする前に行われます。 )。問題があると思われる要素のバイトは、この投稿の最後にあります。

奇妙なことに、失敗したドキュメントは、同じコードできれいに処理される大きなドキュメントからいくつかの要素を削除することによって生成されました。

parse(InputSource input)インターフェイスを実装するオブジェクトのメソッドで例外がスローされていることを知っていorg.xml.saxXMLReaderます。JavadocによるとSAXException

SAX例外、場合によっては別の例外をラップします。

デバッガーで例外を調べると、ラップされた例外がないことがわかります。

このエラーの原因は何ですか?

編集:

例外は、の3回目の出現後にスローされ109ます。

0 投票する
1 に答える
188 参照

xml - 兄弟順序付けによる XML から JSON への変換 (Schematron for JSON)

次のような XML でクエリを実行できる情報システムがあります。

この兄弟の順序は重要であり、schematron (Condition 間の LogicalOperator) によって強制されます。

セマンティックを維持しながら、このデータを JSON で表現するにはどうすればよいですか? JSONは次のようになります

そして、多くのセマンティック情報が失われます。このすべての情報を JSON にエンコードするにはどうすればよいですか

0 投票する
1 に答える
399 参照

attributes - スキマトロンで属性の数を数える

Schematronで属性の存在を確認しようとしています。

「TreeViewID」がある場合は、「ページID」にすでに存在している必要があります

だから私は私の「ツリービューID」と同じ名前の「ページID」を数えようとしました、それらは> =1でなければなりません:

私は何が間違っているのですか?あなたのhlepをありがとう!

0 投票する
1 に答える
2160 参照

xml - Schematron 条件付き検証

私は最近、schematron を使用して xml ドキュメントを検証し始めました。これまでのところかなり感銘を受けていますが、適切に動作させることができないルールに出くわしました。

以下に簡単な例を作成しました。

ns1:some-element/text()基本的に、 「false」が含まれている場合、存在する必要がある2つのことを検証したいと思いns1:same-other-elementます。その検証は実際に機能します。ただし、ns1:some-element/text()false 以外のものが含まれている場合は、天候 ns1:same-other-element が存在するかどうかは気にしません。

この時点で、ルールは、ns1:same-other-element が欠落しており、値がns1:some-element/text()「false」でない場合にも起動します。

これを回避する方法はありますか?

0 投票する
1 に答える
145 参照

xsd - XML に有効なスキーマがあっても XML ドキュメントがないということは可能ですか?

有効なスキーマを持ち、XML ドキュメントを持たないスキーマがあるのではないかと疑っています。もしあれば、いくつかの例を教えてください。

0 投票する
1 に答える
1140 参照

regex - Schematronテストを使用して特殊文字をテストするにはどうすればよいですか?

XMLの特殊文字を検証するためのスキマトロンテストを設定しようとしています...

具体的には、著作権記号(Unicode U + 00A9)が発生した場合に警告を発します。

ルールに次の表記法のいずれかを使用すると、schematronxmlファイルを解析できないようです...

Unicode文字を正規表現に埋め込む方法を知っているスキマトロンの専門家はいますか?

前もって感謝します...

0 投票する
1 に答える
809 参照

xml - Schematron で xml テキスト要素を識別する

次のようなxml要素を識別するルールをXPathで作成することは可能ですか:

?

私は Schematron を使用しており、一部の要素が例のような子を持ってはならないことを指定する必要があるため、それらを識別する必要があります。

前もって感謝します

0 投票する
2 に答える
179 参照

string - 文字列をパス式にキャストする - Schematron

彼ら

私はスキーマトロンを使用しており、次のことを行う必要があります。

検証したいxmlドキュメントに、次のような要素がある場合があります。

これらの要素 (name() の真ん中にドットがある) については、次のように、属性 name = X (この場合) を持つ子要素を持つ Var という名前のディレクトリがあるかどうかを xml ファイルで確認する必要があります。

これらのオブジェクトの name() をパスを表す文字列に変換することを考えたので、この場合は特に:

Var.X は /*/Var/child::*[@name="X"] になります

この文字列を持っているので、実際に文字列が表すパスに属する要素があるかどうかを確認したかったのですが、文字列をパス型にキャストできず、それが可能かどうかさえわかりません...

これを行う簡単な方法はありますか?

0 投票する
2 に答える
301 参照

xml - スケマトロン計算エラー

次のxmlファイルがあります。

私のスキーマトロン ファイルで、TotalCosts を paymentSchedule の金額と同じにしたいと考えています。

そのためには、PaymentSchedule ごとに次のことを行う必要があります。

金額 * 支払回数

その後、すべての PaymentSchedules の合計を取得する必要があり、その数はまったく同じである必要があります。与えられた例でこれを試すと、金額がまったく同じであることがわかります。

これを schematron で検証するために、次の schematron ファイルを作成しました。

しかし、ここで私は問題に直面しています。次の検証結果が得られます。

paymentschedule(31003.000000000004) の金額が合計金額 (31003) と一致しません (func:getPaymentScheduleTotal(.) = number(TotalCosts)) [assert]

.000000000004 がどこから来ているのかわかりません。もちろん、floor のようなものを使用して数値を四捨五入することもできますが、.000000000004 はそもそもそこにあるべきではないと思います。

何か案は?

0 投票する
2 に答える
891 参照

xml - SVRL で Schematron ルール コンテキストの XPath 式を取得する方法は?

ISO Schematron (XSLT1を使用) を使用して、ルールの一致したコンテキストの XPath を検証レポートで取得するにはどうすればよいですか? 1

アサーション テストごとに XPath を取得しようとするのは明らかに意味がありませんが、適用されたコンテキスト要素を再検索する手段は、アプリケーション層に公開されている場合、フィールドの強調表示などの自動処理に非常に便利です。


1今日、答えを見つけました。「明白な」解決策を見つけたのは、予想されるキーワードではなく、つまずきだけでした。Schematron は間違いなく 2003/2007 年に全盛期を迎えました。提出された回答がない場合は、(1 日か 2 日で) 自己回答しますが、提出された適切な回答を希望します。