問題タブ [relaxng]
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.
java - XML Schema、DTD、RelaxNG、Schematron を使用して DocBook ドキュメントを検証する
私の Java アプリケーションでは、異なるバージョンの DocBook 形式の XML ドキュメントを検証する必要があります。DocBook 4 は DTD に基づいており、DocBook 5 は RelaxNG/Schematron に基づいています。さまざまなスキーマ言語に対して検証できる適切な方法は何ですか? Oracle Multi-Schema XML Validator (MSV)、JARV、および oNVDL を見つけました。後者は非推奨のようです。現時点では、SAXParser/XMLReader を使用しています。ただし、RelaxNG はサポートされていません。ジンとの組み合わせも考えましたが、それを行うためのすっきりとした構造を探しています。
前もって感謝します。
c++ - C++ オブジェクトで Relax NG ルールを再現するにはどうすればよいですか?
現時点では、Relax NG スキーマを解析し、C++ オブジェクトのファイル内でルールを再現する必要があるアプリケーションの一部に取り組んでいます。よりよく説明できるように、サンプルコードから始めます。
次のような情報を保存できるオブジェクトを作成したい:
- [定義] 名前、
- 要素名、
- 属性名、
- 関連付けられたルール (0 個以上、1 個以上) を持つ許可された子要素。
次に、可能なすべての要素を GUI に表示して、(Relax NG スキーマに関して) 有効な要素のみをツリーのような構造に追加できるようにします。たとえば、resource.class またはliteral.class のみを property.element に追加できます。GUI で property.element ノードを選択すると、他のすべての可能な要素が GUI でグレー表示されます。私は Qt を使用しているので、スキーマを QDomDocument にロードして DOM ツリーにアクセスします。
このようなメカニズムは普遍的でなければなりません。つまり、要素の名前や構造に関係なく。私のドラフトでは、次のようないくつかのメンバーを配置する単純なクラスを作成しました: defined_name、element_name、required_attributes、optional_attributes。現在、C++ クラスでルールを表現する方法がわからないため、行き詰まっています。作業するオブジェクトの一定のセットがある場合、すべてのオブジェクトをハードコーディングしますが、オブジェクト セットは時間の経過とともに大幅に変化する可能性が非常に高くなります。誰にもアイデアはありますか?
xml - いずれかまたは両方の要素の RelaxNG コンパクト スキーマ (いずれかの順序)
<wrap>要素の内容が次のいずれかである必要がある XML ファイルの RelaxNG Compact スキーマを作成しています。
英語では、 または のいずれ<a/>か<b/>がそれぞれ 1 回、またはいずれかの順序で両方許可されますが、いずれか1 つが存在する必要があります。
以下よりも優れた (よりコンパクトな) 定義はWrapElementありますか?
以下は近いです。確かにもっと簡潔で、許可されているすべてのバリエーションに一致し、要素が複数回出現することを許可していません。ただし、空の<wrap/>要素も誤って許可します。
xml - mysqldump XML の XML スキーマ
によって生成される XML 出力用のスキーマ (DTD、XML スキーマ、または RELAX NG) は存在しますか?
もしそうなら、どこで見つけることができますか?
xml - xml-model タグを使用して XML ドキュメントを Relax NG スキーマにリンクする方法は?
W3C ドラフトxml-modelで指定されているタグを使用して、xml ドキュメントを Relax NG 記述ドキュメントにリンクしたいと考えています。
<?xml-model href="" type="" schematypens="" charset="" title="" group="" phase="" ?>
それを使用する方法を示す完全な例はありますか? xml-model タグを理解する検証ツールはありますか?
編集:ここで例を見ましたschematypens の推奨される使用。残っている唯一の問題は、どのツールが xml-model を使用しているかということだと思います。
xml - xmllint を使用した RelaxNG 検証
このスキーマを検証するために xmllint を作成しようとしています。残念ながら、私はいくつかの奇妙な問題に遭遇しました。インターリーブタグが含まれていない場合、xmllint は間違ったオプション引数を解釈するようです。これは、xmllint で通知する必要があるスペルミスのあるタグpersonを含むテスト スキーマです。残念ながら、xmllint は他の存在しないバグを報告しています。多分私が何か間違ったことをしているのを見てください:
そしてxmlファイルの内容:
スペルミスのタグperonを報告する代わりに、次のように報告します。
要素フィールド: Relax-NG 妥当性エラー: 要素テストには余分な内容があります: フィールド