Извините, если я пропустил тривиальный ответ на этот вопрос, но я пытаюсь получить объект StructuredQueryDefinition, который будет искать документы, содержащие определенный элемент XML.
Строка поиска XML, которую я мог бы использовать, выглядела бы примерно так:
Но я не уверен, как создать StructuredQueryDefinition с помощью Java API. Я ищу эквивалент , но не вижу его.
StructuredQueryBuilder qb = …
StructuredQueryDefinition def = qb.containerQuery(qb.element("MyTag"), ?whatGoesHere?);
Я нашел уродливый хак, который позволил мне создать свой собственный StructuredQueryDefinition, но он некрасивый. Я надеюсь, что существует более «нестандартный» способ ограничения XML-файлов с заданным тегом, но пока я буду использовать этот класс:
package com.marklogic.client.query;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamWriter;
/**
* This is a pretty gritty hack. I needed to create a StructuredQueryDefinition that
* would represent the search. (This was needed to find XML files that
* contain a given element).
*
* The StructuredQueryBuilder has a checkQuery method that only allows StructuredQueryDefinition
* objects that are assignable from the AbstractStructuredQuery class. Unfortunatly this
* class is protected so I can't extend it from any class that isn't in the com.marklogic.client.query
* package. Additionally the AbstractStructuredQuery default constructor references the builderOptionsURI
* of its enclosing class StructuredQueryBuilder so I had to first create a class that extended
* the StructuredQueryBuilder and that class define an inner class that extends the AbstractStructuredQuery
* class.
*
* Its not pretty but it does work. I can create a StructuredQueryDefinition to limit to
* document containing a tag using the following
* qb.containerQuery(
* qb.element(tag),
* new com.marklogic.client.query.StructuredQueryBuilderExt().getTrueQueryDefinition()
* );
*/
public class StructuredQueryBuilderExt extends StructuredQueryBuilder {
public TrueQueryDefinition getTrueQueryDefinition() {
return new TrueQueryDefinition();
}
public class TrueQueryDefinition extends AbstractStructuredQuery {
@Override
public void innerSerialize(XMLStreamWriter serializer) throws XMLStreamException {
serializer.writeEmptyElement("true-query");
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... ml-files-w
Создайте StructuredQueryDefinition с помощью Marklogic Java API, чтобы найти все XML-файлы с данным элементом. ⇐ JAVA
Программисты JAVA общаются здесь
1726948095
Anonymous
Извините, если я пропустил тривиальный ответ на этот вопрос, но я пытаюсь получить объект StructuredQueryDefinition, который будет искать документы, содержащие определенный элемент XML.
Строка поиска XML, которую я мог бы использовать, выглядела бы примерно так:
Но я не уверен, как создать StructuredQueryDefinition с помощью Java API. Я ищу эквивалент , но не вижу его.
StructuredQueryBuilder qb = …
StructuredQueryDefinition def = qb.containerQuery(qb.element("MyTag"), ?whatGoesHere?);
Я нашел уродливый хак, который позволил мне создать свой собственный StructuredQueryDefinition, но он некрасивый. Я надеюсь, что существует более «нестандартный» способ ограничения XML-файлов с заданным тегом, но пока я буду использовать этот класс:
package com.marklogic.client.query;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamWriter;
/**
* This is a pretty gritty hack. I needed to create a StructuredQueryDefinition that
* would represent the search. (This was needed to find XML files that
* contain a given element).
*
* The StructuredQueryBuilder has a checkQuery method that only allows StructuredQueryDefinition
* objects that are assignable from the AbstractStructuredQuery class. Unfortunatly this
* class is protected so I can't extend it from any class that isn't in the com.marklogic.client.query
* package. Additionally the AbstractStructuredQuery default constructor references the builderOptionsURI
* of its enclosing class StructuredQueryBuilder so I had to first create a class that extended
* the StructuredQueryBuilder and that class define an inner class that extends the AbstractStructuredQuery
* class.
*
* Its not pretty but it does work. I can create a StructuredQueryDefinition to limit to
* document containing a tag using the following
* qb.containerQuery(
* qb.element(tag),
* new com.marklogic.client.query.StructuredQueryBuilderExt().getTrueQueryDefinition()
* );
*/
public class StructuredQueryBuilderExt extends StructuredQueryBuilder {
public TrueQueryDefinition getTrueQueryDefinition() {
return new TrueQueryDefinition();
}
public class TrueQueryDefinition extends AbstractStructuredQuery {
@Override
public void innerSerialize(XMLStreamWriter serializer) throws XMLStreamException {
serializer.writeEmptyElement("true-query");
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79008195/create-structuredquerydefinition-with-marklogic-java-api-to-find-all-xml-files-w[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия