Как правильно отправить время в Alexa с помощью SSML?

почему предыдущий код выводит TEXT, почему я должен настаивать на том, чтобы XSL игнорировал все остальные тексты? заключается в том, что поведение всех парсеров XML или только моего собственного

blockquote>

. Вы обнаруживаете одну из самых фундаментальных функций XSLT, как указано в Спецификации: встроенные шаблоны XSLT .

Из Spec :

Существует встроенное правило шаблона, позволяющее продолжить рекурсивную обработку в отсутствие успешного совпадения шаблона с помощью явного правила шаблона в таблице стилей. Это правило шаблона применяется как к узлам, так и к корневому узлу. Ниже показано эквивалентное встроенное правило шаблона:


  

Существует также встроенное правило шаблона для каждого режима, что позволяет продолжить рекурсивную обработку в том же режиме в отсутствие успешное совпадение шаблонов с помощью явного правила шаблона в таблице стилей. Это правило шаблона применяется как к узлам, так и к корневому узлу. Ниже приведен эквивалент встроенного правила шаблона для режима m.


  

Существует также встроенное правило шаблона для узлов текста и атрибута, которые копируют текст через:


  

Встроенное правило шаблона для обработки инструкций и комментариев - ничего не делать.


Встроенное правило шаблона для узлов пространства имен также ничего не значит. Нет шаблона, который может соответствовать узлу пространства имен; поэтому встроенное правило шаблона является единственным правилом шаблона, которое применяется для узлов пространства имен.

Встроенные правила шаблонов обрабатываются так, как если бы они были импортированы неявно перед таблицей стилей и поэтому имеют более низкий приоритет импорта чем все другие правила шаблонов. Таким образом, автор может переопределить встроенное правило шаблона, включив явное правило шаблона.

blockquote>

Таким образом, сообщаемое поведение является результатом применения встроенных шаблонов - 1-й и 2-й из всех трех.

Хороший шаблон дизайна XSLT позволяет переопределить встроенные шаблоны с вашим собственным, который будет вызывать сообщение об ошибке при вызове так, чтобы программист сразу узнал, что его трансформация «утечка»:

Например, если есть этот XML-документ:


  
    Don't want to see this
  

и он обрабатывается с помощью этого преобразования:


 
 

 
   
      
        
      
      
   
 

результат:


   Don't want to see this

, и программист будет очень путать, как появился нежелательный текст.

Однако просто добавление этого параметра catch-all template помогает избежать любые такие путаницы и ошибки уловов сразу:

 
  
   WARNING: Unmatched element: 
  

  
 

Теперь, помимо запутанного вывода, программист получает предупреждение, которое немедленно объясняет проблему:

 WARNING: Unmatched element: c
1
задан Jay A. Little 19 March 2019 в 18:31
поделиться